Commit Graph

19990 Commits

Author SHA1 Message Date
Stephen Kelly d8a59ea4b3 Port cmGeneratorExpression to cmTarget from cmGeneratorTarget.
Following from the discussion here:

 http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/3615/focus=5170
 (Re: Generator expressisons in target properties, 26 Oct 12:10)

we can't split cmTarget API for linking into cmGeneratorTarget. In
the future we will probably also need to move the include and compile
definitions API back to cmTarget so that it can be used by export().
2012-11-21 00:11:54 +01:00
Brad King 8faf4e9380 Merge topic 'FixAutomocRegression3'
d253657 Automoc: fix regression #13667, broken build in phonon
2012-11-20 11:48:09 -05:00
Brad King d82200df26 Merge topic 'generator-factory'
75ebebc VS: Remove platform specific generator files
8b62080 VS: Remove EnableLanguage from platform-specific generators
5bdf011 VS: Remove GetPlatformName from platform-specific generators
8d42ab4 VS: Fix ArchitectureId of Visual Studio 10 IA64 generator
6f439b3 VS: Remove AddPlatformDefinitions from platform-specific generators
5170a88 Make cmGlobalGenerator::GetDocumentation() a static function
04ff866 Allow a GeneratorFactory handling of more than one generator
984ebc3 Search generator in cmake::ExtraGenerators before in cmake::Generators
30a6950 Add cmGlobalGeneratorFactory::GetGenerators()
e8f8414 Introduce the abstract class cmGlobalGeneratorFactory
2012-11-20 11:48:05 -05:00
Brad King 9e73b3a095 Merge topic 'fix-IMPORTED-GLOBAL-reconfigure'
5ff7587 Initialize IMPORTED GLOBAL targets on reconfigure (#13702)
2012-11-20 11:47:57 -05:00
Brad King 5e0906629b Merge topic 'AutomocInheritFOLDERTargetProperty'
3efe1d3 Automoc: "inherit" FOLDER target property from target (#13688)
2012-11-20 11:47:51 -05:00
Brad King 6d85dce6f8 Merge topic 'vs-drop-Zm'
cd73979 MSVC: Drop default use of /Zm1000 for VS >= 7.1
2012-11-20 11:47:47 -05:00
Brad King 53b7e71e88 Merge topic 'vs-global-sections'
45d4f81 Merge topic 'per-config-EXCLUDE_FROM_DEFAULT_BUILD' into vs-global-sections
694322e Define properties VS_GLOBAL_SECTION_*
2c91962 Implement properties VS_GLOBAL_SECTION_*
57cadc1 Add tests for VS_SOLUTION_GLOBAL_SECTIONS
2012-11-20 11:47:43 -05:00
Brad King 508504ab6f Merge topic 'per-config-EXCLUDE_FROM_DEFAULT_BUILD'
739f166 Serialize tests for EXCLUDE_FROM_DEFAULT_BUILD
e31d83b Define property EXCLUDE_FROM_DEFAULT_BUILD
d1f8828 Add property EXCLUDE_FROM_DEFAULT_BUILD_<CONFIG>
b777272 Add tests for EXCLUDE_FROM_DEFAULT_BUILD
2012-11-20 11:47:35 -05:00
Alex Neundorf d2536579d5 Automoc: fix regression #13667, broken build in phonon
On some systems, ${QT_INCLUDE_DIR} is reported by gcc as a builtin
include search dir. Some projects use this information to extend
CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES.
In cmake 2.8.10 now the targets are queried for the include directories
they use. When they return the result, the include dirs contained in
CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES have been removed.
In cmake 2.8.9 and below the INCLUDE_DIRECTORIES directory property
was queried, where this had not been stripped.
So, in those projects which modify the implicit include dirs variable,
on systems where ${QT_INCLUDE_DIR} is reported by gcc, this directory,
e.g. /usr/lib/include/qt/, was not given anymore to moc. This made moc
not find required headers, so the build broke.
Simply giving the full CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES to moc
is no solution either, since moc can't handle some of the headers it
finds then (https://bugreports.qt-project.org/browse/QTBUG-28045).
So now cmake checks CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES, and if this
contains ${QT_INCLUDE_DIR}, and the target reports that it uses
${QT_QTCORE_INCLUDE_DIR} but not ${QT_INCLUDE_DIR}, ${QT_INCLUDE_DIR}
is added to the include dirs given to moc.

Alex
2012-11-20 11:46:28 -05:00
Kitware Robot f673b38247 CMake Nightly Date Stamp 2012-11-20 00:01:06 -05:00
Patrick Gansterer 75ebebc39c VS: Remove platform specific generator files
Move the whole logic into the base class and the factory.
2012-11-19 14:56:29 -05:00
Patrick Gansterer 8b62080c9d VS: Remove EnableLanguage from platform-specific generators
Move the logic into the base class to remove duplicated code.
2012-11-19 14:10:30 -05:00
Patrick Gansterer 5bdf01184b VS: Remove GetPlatformName from platform-specific generators
Use the existing ArchitectureId to generate the PlatformName
to reduce duplicated information in the classes.
2012-11-19 14:10:25 -05:00
Patrick Gansterer 8d42ab4260 VS: Fix ArchitectureId of Visual Studio 10 IA64 generator
Replace "x64" with "Itanium" like at the VS 9 IA64 generator.
2012-11-19 14:09:16 -05:00
Patrick Gansterer 6f439b30cb VS: Remove AddPlatformDefinitions from platform-specific generators
Move the logic for handling platform specific defines from the
subclasses into the cmGlobalVisualStudioGenerator base class.
2012-11-19 12:54:57 -05:00
Patrick Gansterer 5170a8800f Make cmGlobalGenerator::GetDocumentation() a static function
Making the function static allows us to call it directly,
without creating and removing an instance of the generator.
2012-11-19 12:54:50 -05:00
Patrick Gansterer 04ff866ca8 Allow a GeneratorFactory handling of more than one generator
Pass the name of the requested generator to the generator factory,
which is now responsible to check if it can create a matching
generator for the name. This allows us to add more logic to the
factory in a next step, so that not every possible generator needs
to get registered explicit in cmake::AddDefaultGenerators().
2012-11-19 12:54:35 -05:00
Patrick Gansterer 984ebc3350 Search generator in cmake::ExtraGenerators before in cmake::Generators
Since ExtraGenerators does not contain items, which are in Generators
too, there is not change in behaviour. The benefit of this change is,
that the lookup in the Generators map is now only done once.
2012-11-19 12:54:34 -05:00
Patrick Gansterer 30a695021c Add cmGlobalGeneratorFactory::GetGenerators()
This allows cmGlobalGeneratorFactory to create more than
one type of cmGlobalGenerator in a next step.
2012-11-19 12:54:34 -05:00
Patrick Gansterer e8f841473b Introduce the abstract class cmGlobalGeneratorFactory
This new abstract class allows us move some logic from the
cmGlobalGenerator into its own layer in a next step.
2012-11-19 12:54:30 -05:00
Brad King 5ff75873a9 Initialize IMPORTED GLOBAL targets on reconfigure (#13702)
Since commit ca39c5cd (Optionally allow IMPORTED targets to be globally
visible, 2012-01-25) cmGlobalGenerator has a second member that tracks
targets with global scope.  We must initialize the new 'ImportedTargets'
member wherever the old 'TotalTargets' member is initialized.  Without
this initialization the ImportedTargets member is left with dangling
pointers during a same-process re-configuration.
2012-11-19 08:37:10 -05:00
Kitware Robot 7a8da5fce1 CMake Nightly Date Stamp 2012-11-19 00:01:03 -05:00
Kitware Robot 843c1617d6 CMake Nightly Date Stamp 2012-11-18 00:01:06 -05:00
Alex Neundorf 3efe1d35f4 Automoc: "inherit" FOLDER target property from target (#13688)
This patch sets the FOLDER target property for the automoc target
to the same value as of the actual target. This organizes the targets
in IDEs with folders better.

Inspired-by: Mike Gelfand

Alex
2012-11-17 18:32:54 +01:00
Kitware Robot 3359d95c00 CMake Nightly Date Stamp 2012-11-17 00:01:06 -05:00
Brad King cd739794d6 MSVC: Drop default use of /Zm1000 for VS >= 7.1
From the option documentation of VS >= 7.1:

 "In earlier versions of Visual C++, the compiler used several discrete
  heaps, and each had a finite limit. Currently, the compiler dynamically
  grows the heaps as necessary up to a total heap size limit, and requires
  a fixed-size buffer only to construct precompiled headers. Consequently,
  the /Zm compiler option is rarely necessary."
 http://msdn.microsoft.com/en-us/library/bdscwf1c.aspx

Suggested-by: Adam Moss <adam@broadcom.com>
2012-11-16 12:52:59 -05:00
Brad King 45d4f81fde Merge topic 'per-config-EXCLUDE_FROM_DEFAULT_BUILD' into vs-global-sections
Conflicts:
	Source/cmGlobalVisualStudio7Generator.h
2012-11-16 09:23:45 -05:00
Petr Kmoch 694322ecea Define properties VS_GLOBAL_SECTION_*
Add definition and documentation of properties
VS_GLOBAL_SECTION_PRE_<section> and VS_GLOBAL_SECTION_POST_<section>.
2012-11-16 08:17:14 -05:00
Petr Kmoch 2c9196207b Implement properties VS_GLOBAL_SECTION_*
Add properties VS_GLOBAL_SECTION_PRE_<name> and
VS_GLOBAL_SECTION_POST_<name>, which can be used to generate custom
GlobalSection-s in the .sln file.
2012-11-16 08:17:11 -05:00
Petr Kmoch 57cadc179c Add tests for VS_SOLUTION_GLOBAL_SECTIONS
Add tests for correct appliation of directory properties
VS_SOLUTION_GLOBAL_SECTIONS_*
2012-11-16 08:16:10 -05:00
Kitware Robot c152c65898 CMake Nightly Date Stamp 2012-11-16 00:01:03 -05:00
Kitware Robot a8fa4c0a65 CMake Nightly Date Stamp 2012-11-15 00:01:05 -05:00
Kitware Robot e670965093 CMake Nightly Date Stamp 2012-11-14 00:01:05 -05:00
Brad King 7cdc95ac36 Merge topic 'CPack-BugFixesSet'
b6f7881 Remove seemingly bogus duplicate CPACK_PACKAGE_FILE_NAME call.
2012-11-13 14:32:09 -05:00
Brad King a00132ced4 Merge topic 'CPack-fixTypoInErrorMsg'
572d9e1 Correct string literal typo (have "(NULL)" like all other cases).
2012-11-13 14:32:04 -05:00
Brad King bd52ff3ac9 Merge topic 'only-git-fetch-when-necessary'
a41d3a4 ExternalProjectUpdateTest: Only support Git 1.6.5 and greater.
de760c1 ExternalProject: Verify when a fetch occurs during update test.
0a34433 ExternalProject: Make sure the ExternalProjectUpdate setup is available.
9b66c8f ExternalProject: Always do a git fetch for a remote ref.
2619f4d ExternalProject: Add tests for UPDATE_COMMAND.
378aa12 ExternalProject: Do smoke tests for Git Tutorial builds.
d075829 ExternalProject: Only run 'git fetch' when required.
2012-11-13 14:31:58 -05:00
Brad King 035c29fee4 Merge topic 'link-depends-no-shared'
306796e Teach BuildDepends test to cover LINK_DEPENDS_NO_SHARED
ed97631 Optionally skip link dependencies on shared library files
2012-11-13 14:31:54 -05:00
Brad King 87b8487d14 Merge topic 'update-KWSys'
1acc689 Merge branch 'upstream-kwsys' into update-KWSys
4cf44d3 KWSys 2012-11-08 (3b17de34)
2012-11-13 14:31:49 -05:00
Brad King 9d10ae5e52 Merge topic 'fix-compiler-warnings'
737534c Remove references to ancient and removed parts of the code.
21e8a08 Resolve ambiguity warning regarding use of && and ||.
5f6432f Resolve warnings about shadowing parameters and local variables.
9f16d42 Resolve warnings about used enum values in switch blocks.
bd8bdb6 Resolve warnings about unused variables.
2012-11-13 14:31:45 -05:00
Brad King b35ba02d52 Merge topic 'osx-bad-sdk-xcode-3.2.6'
720d790 OS X: Warn about known SDK breakage by Xcode 3.2.6
2012-11-13 14:31:37 -05:00
Brad King 74563ba8fd Merge topic 'doc-fixups'
fa04673 Documentation: Clarify configure_file behavior
07d5e4b Documentation: Clarify some command descriptions
965de97 Documentation: Correct typos and grammar
2012-11-13 14:31:33 -05:00
Brad King 10fd4c9352 Merge topic 'MakeSquish4Work'
b58fd65 Squish: fix new squish_v4_add_test() macro
2012-11-13 14:31:26 -05:00
Brad King d3fb1fa6f0 Merge topic 'compiler-warnings'
d06a9bd Enable some compiler warnings when building CMake.
2012-11-13 14:31:23 -05:00
Brad King 70b176e276 Merge topic 'deprecate-load_command'
d2d4398 load_command: Deprecate and document pending removal
2012-11-13 14:31:19 -05:00
Brad King 8f47c8bed1 Merge topic 'fix-13604-ccmake-del-key'
d424de4 ccmake: Allow DEL key in first column
2012-11-13 14:31:13 -05:00
Matthew Woehlke d424de48dc ccmake: Allow DEL key in first column
Change test if DEL key is allowed from 'curcol > 0' to 'curcol >= 0', as
deleting forward is reasonable in the first column (and probably
expected by users to work).

Support for DEL was first added in commit b3b43508 (BUG: fix for 6462,
delete key should delete the current char, 2008-08-19).  The commit
appears to have copied the original logic from the backspace code so the
old 'curcol > 0' logic was accidental rather than intentional.
2012-11-13 13:44:33 -05:00
Matt McCormick a41d3a40be ExternalProjectUpdateTest: Only support Git 1.6.5 and greater. 2012-11-13 13:35:09 -05:00
Matt McCormick de760c1fa3 ExternalProject: Verify when a fetch occurs during update test.
The performance feature of only performing a git fetch when needed
during the ExternalProject update step is verified during the test.
A fetch is identified by removing the FETCH_HEAD file and checking for
its reincarnation.
2012-11-13 13:35:07 -05:00
Matt McCormick 0a34433dfb ExternalProject: Make sure the ExternalProjectUpdate setup is available.
This prepares the numberous tests that occur in the ExternalProjectUpdate
test.  The tests were passing previously because a fresh build was not performed.
2012-11-13 13:34:44 -05:00
Matt McCormick 9b66c8faf5 ExternalProject: Always do a git fetch for a remote ref.
Remote git refs always require a git fetch, because the remote may move around
where the ref points.
2012-11-13 13:34:43 -05:00