summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CTest: Add options to set generator toolsetBrad King2013-02-074-4/+31
| | | | | | | | | | The ctest_configure command already reads the CTEST_CMAKE_GENERATOR variable to get the value for the cmake -G option. Read new variable CTEST_CMAKE_GENERATOR_TOOLSET for -T. The "ctest --build-and-test" mode already has "--build-generator" to specify the -G option to CMake. Add a "--build-generator-toolset" option to specify the -T value.
* Xcode: Implement generator toolset selection (#9831, #13802)Brad King2013-02-074-0/+36
| | | | | Implement generator toolset selection (cmake -T) for Xcode > 2.0 by adding the GCC_VERSION build setting to project files.
* VS: Implement generator toolset selection (#10722, #13774)Brad King2013-02-073-0/+12
| | | | | | | | | | | | Implement generator toolset selection (cmake -T) for VS >= 10 by setting the PlatformToolset. Extend the RunCMake.GeneratorToolset test case to verify CMAKE_GENERATOR_TOOLSET when the generator supports -T. Since commit 485a940e (VS: Simplify MSVC version reporting, 2012-08-23) all MSVC version information is detected during the compiler id step from the actual compiler invoked by generated build systems rather than hard-coded in VS generators. Therefore we can set the PlatformToolset in VS >= 10 project files and support toolsets from other VS versions.
* CMake: Add -T option to choose a generator toolsetBrad King2013-02-076-0/+95
| | | | | | | | | | | | Reject the option by default. It will be implemented on a per-generator basis. Pass the setting into try_compile project generation. Add cache entry CMAKE_GENERATOR_TOOLSET and associated variable documentation to hold the value persistently. Add a RunCMake.GeneratorToolset test to cover basic "-T" option cases. Verify that CMAKE_GENERATOR_TOOLSET is empty without -T, that -T is rejected when the generator doesn't support it, and that two -T options are always rejected.
* XCode generator won't infinitely parse compiler flags (bug #13354).Robert Maynard2013-01-181-5/+10
| | | | | | When parsing the compiler flag list we reduce the search space on each iteration to be the subset of the string we hadn't searched before.
* CMake Nightly Date StampKitware Robot2013-01-181-1/+1
|
* CMake Nightly Date StampKitware Robot2013-01-171-1/+1
|
* CMake Nightly Date StampKitware Robot2013-01-161-1/+1
|
* Merge topic 'test-export-iface-genex'Brad King2013-01-1510-48/+131
|\ | | | | | | | | | | | | | | | | | | | | | | | | 1d74ba2 Test evaluation target via export for generator expressions 522bdac Export the INTERFACE_PIC property. 4ee872c Make the BUILD_INTERFACE of export()ed targets work. 1d47cd9 Add a test for the interfaces in targets exported from the build tree. 6c828f9 Move the exported check for file existence. cfd4f0a Move the exported check for dependencies of targets d8fe1fc Only generate one check per missing target. f623d37 Don't write a comment in the export file without the code. b279f2b Strip consecutive semicolons when preprocessing genex strings.
| * Export the INTERFACE_PIC property.Stephen Kelly2013-01-154-0/+18
| |
| * Make the BUILD_INTERFACE of export()ed targets work.Stephen Kelly2013-01-154-13/+31
| | | | | | | | | | The existing BUILD_INTERFACE code is executed at generate time, which is too late for export().
| * Move the exported check for file existence.Stephen Kelly2013-01-151-2/+2
| | | | | | | | | | Check only once, in the Config.cmake file, instead of once in each Config-<cfg>.cmake file.
| * Move the exported check for dependencies of targetsStephen Kelly2013-01-156-20/+27
| | | | | | | | | | Check only once, in the Config.cmake file, instead of once in each Config-<cfg>.cmake file.
| * Only generate one check per missing target.Stephen Kelly2013-01-151-11/+15
| |
| * Don't write a comment in the export file without the code.Stephen Kelly2013-01-151-0/+4
| |
| * Strip consecutive semicolons when preprocessing genex strings.Stephen Kelly2013-01-151-2/+34
| |
* | Merge topic 'update-kwsys'Brad King2013-01-154-43/+259
|\ \ | | | | | | | | | | | | | | | | | | | | | e2c756f Merge branch 'upstream-kwsys' into update-kwsys 4ba0ac7 KWSys 2013-01-14 (6fa1c99f) 6f57a90 Merge branch 'upstream-kwsys' into update-kwsys 6318834 KWSys 2013-01-10 (608d6b47)
| * | Merge branch 'upstream-kwsys' into update-kwsysBrad King2013-01-144-37/+129
| | |
| * | Merge branch 'upstream-kwsys' into update-kwsysBrad King2013-01-112-6/+130
| | |
* | | Merge topic 'TARGET_DEFINED-genex'Brad King2013-01-152-0/+19
|\ \ \ | | | | | | | | | | | | | | | | 2bee6f5 Add the TARGET_DEFINED generator expression
| * | | Add the TARGET_DEFINED generator expressionStephen Kelly2013-01-132-0/+19
| | |/ | |/| | | | | | | This tests whether the parameter is a usable target.
* | | Merge topic 'commands-genex-docs'Brad King2013-01-153-0/+7
|\ \ \ | | | | | | | | | | | | | | | | 7c7b94f Document the use of generator expressions in new commands.
| * | | Document the use of generator expressions in new commands.Stephen Kelly2013-01-133-0/+7
| | | |
* | | | Merge topic 'tll-allow-genex'Brad King2013-01-152-0/+20
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 1da7502 Don't include generator expressions in old-style link handling.
| * | | | Don't include generator expressions in old-style link handling.Stephen Kelly2013-01-132-0/+20
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't add generator expressions to variables which are used for CMP0003, CMP0004, and the old-style _LIB_DEPENDS content. They will not be evaluated when read anyway and would probably confuse the code reading them. This makes it legitimate to use target_link_libraries with generator expressions as arguments.
* | | | Merge topic 'compatible-INTERFACE-user-properties'Brad King2013-01-154-0/+81
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 7171fd0 Add a way to check INTERFACE user property compatibility.
| * | | | Add a way to check INTERFACE user property compatibility.Stephen Kelly2013-01-154-0/+81
| | |_|/ | |/| |
* | | | Merge topic 'fix-empty-link-line-crash'Brad King2013-01-151-0/+6
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 8ff1d47 CMake: Skip empty link.txt lines (#13845)
| * | | | CMake: Skip empty link.txt lines (#13845)Brad King2013-01-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the implementation of "cmake -E cmake_link_script", skip lines from the input file that are empty or contain only whitespace. Do not try to run a child with no command line.
* | | | | CMake Nightly Date StampKitware Robot2013-01-151-1/+1
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2013-01-141-1/+1
| |_|/ / |/| | |
* | | | CMake Nightly Date StampKitware Robot2013-01-131-1/+1
| |_|/ |/| |
* | | CMake Nightly Date StampKitware Robot2013-01-121-1/+1
| |/ |/|
* | Merge topic 'LINK_INTERFACE_LIBRARIES-genex'Brad King2013-01-118-114/+286
|\ \ | |/ |/| | | | | | | | | | | | | | | 77d2646 Allow generator expressions in LINK_INTERFACE_LIBRARIES. 94aeaf7 Split LINK_INTERFACE_LIBRARIES export handling into dedicated method. a3aedb8 Split the generator expression before extracting targets. b6036d1 Extract the AddTargetNamespace method. cb1afbf Don't pass a position when determining if a target name is a literal. f99196d Add cmGeneratorExpression::Split() API.
| * Allow generator expressions in LINK_INTERFACE_LIBRARIES.Stephen Kelly2013-01-103-16/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Config and IMPORTED_ variants may also contain generator expressions. If 'the implementation is the interface', then the result of evaluating the expressions at generate time is used to populate the IMPORTED_LINK_INTERFACE_LIBRARIES property. 1) In the case of non-static libraries, this is fine because the user still has the option to populate the LINK_INTERFACE_LIBRARIES with generator expressions if that is what is wanted. 2) In the case of static libraries, this prevents a footgun, enforcing that the interface and the implementation are really the same. Otherwise, the LINK_LIBRARIES could contain a generator expression which is evaluated with a different context at build time, and when used as an imported target. That would mean that the result of evaluating the INTERFACE_LINK_LIBRARIES property for a static library would not necessarily be the 'link implementation'. For example: add_library(libone STATIC libone.cpp) add_library(libtwo STATIC libtwo.cpp) add_library(libthree STATIC libthree.cpp) target_link_libraries(libtwo $<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,STATIC_LIBRARY>:libone>) target_link_libraries(libthree libtwo) If the LINK_LIBRARIES content was simply copied to the IMPORTED_LINK_INTERFACE_LIBRARIES, then libthree links to libone, but executables linking to libthree will not link to libone. 3) As the 'implementation is the interface' concept is to be deprecated in the future anyway, this should be fine.
| * Split LINK_INTERFACE_LIBRARIES export handling into dedicated method.Stephen Kelly2013-01-104-3/+33
| |
| * Split the generator expression before extracting targets.Stephen Kelly2013-01-102-2/+57
| | | | | | | | | | | | | | | | | | | | | | | | Now that we're processing a LINK_INTERFACE_LIBRARIES string, it can contain targets. Make sure they are extracted for namespacing purposes. This needs to be restricted to strings which can actually have targets named in them. For example, this is not done for INTERFACE_COMPILE_DEFINITIONS, because even if there is a target named 'foo', the string 'foo' in that property means that '-Dfoo' will be set when compiling.
| * Extract the AddTargetNamespace method.Stephen Kelly2013-01-102-95/+52
| |
| * Don't pass a position when determining if a target name is a literal.Stephen Kelly2013-01-101-1/+1
| | | | | | | | The lastPos refers to a position in a different string.
| * Add cmGeneratorExpression::Split() API.Stephen Kelly2013-01-102-0/+64
| | | | | | | | | | | | | | | | | | | | It can split a string like "A;$<1:B>;$<1:C>;D;E;$<1:F;G;H>;$<1:I>;J" into "A" "$<1:B>" "$<1:C>" "D" "E" "$<1:F;G;H>" "$<1:I>" "J"
* | CMake Nightly Date StampKitware Robot2013-01-111-1/+1
|/
* Merge topic 'INTERFACE_POSITION_INDEPENDENT_CODE'Brad King2013-01-1011-10/+241
|\ | | | | | | | | | | | | 3581b96 Process the INTERFACE_PIC property from linked dependencies 042ecf0 Add API to calculate link-interface-dependent bool properties or error. bf5ece5 Keep track of properties used to determine linker libraries.
| * Process the INTERFACE_PIC property from linked dependenciesStephen Kelly2013-01-106-8/+37
| | | | | | | | | | | | | | | | | | This allows a dependee to inform a target that it should have its POSITION_INDEPENDENT_CODE property set to ON, or OFF. The value of the POSITION_INDEPENDENT_CODE property, if set, must be consistent with any INTERFACE_POSITION_INDEPENDENT_CODE properties on dependees. Add a test covering the consistency checks on platforms where they run.
| * Add API to calculate link-interface-dependent bool properties or error.Stephen Kelly2013-01-082-0/+131
| | | | | | | | | | | | | | | | This new method checks that the property FOO on a target is consistent with the INTERFACE_FOO properties of its dependees. If they are not the consistent, an error is reported. 'Consistent' means that iff the property is set, it must have the same boolean value as all other related properties.
| * Keep track of properties used to determine linker libraries.Stephen Kelly2013-01-086-2/+73
| | | | | | | | | | Those properties can't later be implicitly defined by the interface of those link libraries.
* | Merge topic 'target-includes-defines-commands'Brad King2013-01-107-0/+523
|\ \ | | | | | | | | | | | | | | | fc61a7a Add the target_compile_definitions command. 8a37ebe Add the target_include_directories command.
| * | Add the target_compile_definitions command.Stephen Kelly2013-01-103-0/+150
| | | | | | | | | | | | This is a convenience API to populate the corresponding properties.
| * | Add the target_include_directories command.Stephen Kelly2013-01-105-0/+373
| | | | | | | | | | | | This is a convenience API to populate the corresponding properties.
* | | Merge topic 'tll-IMPORTED-targets'Brad King2013-01-101-0/+14
|\ \ \ | | | | | | | | | | | | | | | | 9cfe4f1 Allow target_link_libraries with IMPORTED targets.
| * | | Allow target_link_libraries with IMPORTED targets.Stephen Kelly2013-01-081-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it possible to use: target_link_libraries(foo LINK_INTERFACE_LIBRARIES bar) where foo is an IMPORTED target. Other tll() signatures are not allowed.