summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* CMake Nightly Date StampKitware Robot2013-02-091-1/+1
|
* Merge topic 'style-fixes'Brad King2013-02-081-2/+2
|\ | | | | | | | | 2ce7231 Style: Use this-> when invoking member functions.
| * Style: Use this-> when invoking member functions.Stephen Kelly2013-02-061-2/+2
| |
* | Merge topic 'generator-toolset'Brad King2013-02-0875-165/+420
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 56ca8d4 Tests: Add generator toolset support f36c665 Tests: Consolidate ctest --build-and-test generator options c0debb1 Merge branch 'master' into generator-toolset daae0d2 ExternalProject: Propagate the generator toolset e3841cf CTest: Add options to set generator toolset f980a80 Xcode: Implement generator toolset selection (#9831, #13802) 650c647 VS: Implement generator toolset selection (#10722, #13774) 4fd5342 CMake: Add -T option to choose a generator toolset 118c32f Merge branch 'xcode-duplicate-flags-13354' into generator-toolset cf8645e Tests: Run ctest custom commands with VERBATIM 5b2fba5 ExternalProject: Simplify CMake command line generation
| * | Tests: Add generator toolset supportBrad King2013-02-0745-13/+76
| | | | | | | | | | | | | | | Propagate CMAKE_GENERATOR_TOOLSET through the test hierarchy so that all tests can build with the selected generator toolset, if any.
| * | Tests: Consolidate ctest --build-and-test generator optionsBrad King2013-02-071-146/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All ctest --build-and-test invocations require the options --build-generator ${CMAKE_GENERATOR} --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} to be passed and have consistent values, except for a few special cases. Collect the generator options in a variable instead of repeating the options everywhere explicitly.
| * | Merge branch 'master' into generator-toolsetBrad King2013-02-07289-606/+3678
| |\ \ | | | | | | | | | | | | We need the latest Tests/CMakeLists.txt so we can refactor all tests.
| * | | ExternalProject: Propagate the generator toolsetBrad King2013-02-071-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the CMAKE_GENERATOR option is given to ExternalProject_Add, look also for option CMAKE_GENERATOR_TOOLSET to select the value of the cmake "-T" command-line flag. When no CMAKE_GENERATOR option is given explicitly then use the current project's CMAKE_GENERATOR_TOOLSET (since we already use its CMAKE_GENERATOR).
| * | | 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-078-1/+48
| | | | | | | | | | | | | | | | | | | | 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-077-3/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0719-0/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Merge branch 'xcode-duplicate-flags-13354' into generator-toolsetBrad King2013-01-31211-3056/+5658
| |\ \ \
| * | | | Tests: Run ctest custom commands with VERBATIMBrad King2013-01-312-3/+6
| | | | |
| * | | | ExternalProject: Simplify CMake command line generationBrad King2013-01-311-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Append the source directory to the command line option in a separate step instead of duplicating it with each possible generator.
* | | | | Merge topic 'CMAKE_CL_64-CXX'Brad King2013-02-081-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | fe664b5 MSVC: Fix CMAKE_CL_64 in CXX-only projects (#13896)
| * | | | | MSVC: Fix CMAKE_CL_64 in CXX-only projects (#13896)Brad King2013-02-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When CXX is enabled without C then MSVC_CXX_ARCHITECTURE_ID is set instead but not MSVC_C_ARCHITECTURE_ID. Test both.
* | | | | | Merge topic 'exit-without-working-directory'Brad King2013-02-083-11/+7
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | a943b5c Fail early if no current working directory exists
| * | | | | | Fail early if no current working directory existsBrad King2013-02-073-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the old "nocwd" behavior that attempts to provide the "--help" output when no working directory is available. The long help output scrolls the real error message out of typical terminal sizes. Also execute as little code as possible when no working directory exists.
* | | | | | | Merge topic 'update-kwsys'Brad King2013-02-081-18/+10
|\ \ \ \ \ \ \ | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7df291f Merge branch 'upstream-kwsys' into update-kwsys 9d66f74 KWSys 2013-02-05 (5c34ed2e)
| * | | | | | Merge branch 'upstream-kwsys' into update-kwsysBrad King2013-02-071-18/+10
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| | * | | | | KWSys 2013-02-05 (5c34ed2e)KWSys Robot2013-02-071-18/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ 5c34ed2e | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' 5b0d1bd9..5c34ed2e Brad King (1): 5c34ed2e SystemTools: Do not abort with no current directory Change-Id: Id054017eac2bf10c71ca721df48298cdff2bea82
* | | | | | | Merge topic 'implicit-lib-canonical-path'Brad King2013-02-082-0/+12
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 10e8b2d Normalize full paths in implicit link library list
| * | | | | | | Normalize full paths in implicit link library listBrad King2013-02-062-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach CMakeParseImplicitLinkInfo to convert implicit link library full paths to a canonical form. This makes them more reproducible in case different language compiler front-ends add the same library by different paths e.g. ".../libA.a" and "...//libA.a". Add a case to the CMake.ImplicitLinkInfo test to cover removal of extra slashes from both library and directory paths.
* | | | | | | | CMake Nightly Date StampKitware Robot2013-02-081-1/+1
| |/ / / / / / |/| | | | | |
* | | | | | | CMake Nightly Date StampKitware Robot2013-02-071-1/+1
| |_|_|_|_|/ |/| | | | |
* | | | | | CMake Nightly Date StampKitware Robot2013-02-061-1/+1
| |_|_|_|/ |/| | | |
* | | | | Merge topic 'tll-includes-defines'Brad King2013-02-0541-94/+633
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e48d842 Cache context-independent includes on evaluation. 089fe1c Optimize genex evaluation for includes and defines. 179f495 find_package: Reword <package>_NO_INTERFACES documentation e7b579b Test workaround of bad interface include directories from depends. 77cecb7 Add includes and compile definitions with target_link_libraries. 0b92602 Add the $<LINKED:...> generator expression. 0fa7f69 Add API to check if we're reading a includes or defines property. 2c3654c Add a way to exclude INTERFACE properties from exported targets. d4297d5 Export targets to a targets file, not a Config file. df4d2b2 Make it an error for INSTALL_PREFIX to be evaluated. 7ceeba9 Advance more when preprocessing exported strings. 30268b4 Handle reading empty properties defined by the link interface.
| * | | | | Cache context-independent includes on evaluation.Stephen Kelly2013-02-035-14/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generator expressions whose output depends on the configuration now record that fact. The GetIncludeDirectories method can use that result to cache the include directories for later calls. GetIncludeDirectories is called multiple times for a target for each configuration, so this should restore performance for multi-config generators.
| * | | | | Optimize genex evaluation for includes and defines.Stephen Kelly2013-02-023-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While porting boost to use these features, the generation step took too long (several minutes before I stopped it). The reason was that the boost libraries form a large interdependent mesh. The libraries list their dependencies in their INTERFACE such as: $<LINKED:boost::core>;$<LINKED:boost::config>;$<LINKED:boost::mpl> As boost::core already depends on the boost::config libraries, that expression has no impact on the end-content, as it is removed after the generation step. There is no DAG issue though, so the generator expression evaluation would fully evaluate them. In the case of the config library, it also depends on the core library, so all depends are followed through that again, despite the fact that they've just been evaluated. After this patch, the evaluation skips libraries if they have already been seen via depends or directly in the content. This patch keeps track of targets whose INTERFACE has been consumed already. The INCLUDE_DIRECTORIES and COMPILE_DEFINITIONS properties are whitelisted because repeated content will be stripped out later during generation. For other properties now and in the future, that may not be the case.
| * | | | | find_package: Reword <package>_NO_INTERFACES documentationBrad King2013-02-011-18/+17
| | | | | |
| * | | | | Test workaround of bad interface include directories from depends.Stephen Kelly2013-01-311-0/+41
| | | | | |
| * | | | | Add includes and compile definitions with target_link_libraries.Stephen Kelly2013-01-3114-56/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This establishes that linking is used to propagate usage-requirements between targets in CMake code. The use of the target_link_libraries command as the API for this is chosen because introducing a new command would introduce confusion due to multiple commands which differ only in a subtle way.
| * | | | | Add the $<LINKED:...> generator expression.Stephen Kelly2013-01-3112-9/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is both a short form of using a TARGET_DEFINED expression together with a TARGET_PROPERTY definition, and a way to strip non-target content from interface properties when exporting.
| * | | | | Add API to check if we're reading a includes or defines property.Stephen Kelly2013-01-312-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | This will allow the implementation of the LINKED generator expression.
| * | | | | Add a way to exclude INTERFACE properties from exported targets.Stephen Kelly2013-01-312-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Projects set interface requirements upstream, and existing downstreams use of target_link_libraries will consume those interfaces. This can create a backward compatibility concern as the result may be changing the order of include directories of downstreams, or another side-effect of using the INTERFACE properties. Provide a way for them to emulate the behavior of a version-based policy in the config file.
| * | | | | Export targets to a targets file, not a Config file.Stephen Kelly2013-01-312-4/+4
| | | | | |
| * | | | | Make it an error for INSTALL_PREFIX to be evaluated.Stephen Kelly2013-01-317-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An empty string is not likely going to produce expected results in any evaluation context. It is replaced by preprocessing currently.
| * | | | | Advance more when preprocessing exported strings.Stephen Kelly2013-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When evaluating TARGET_PROPERTY here, we can skip to the comma location. We need to calculate it though as the string may have just been changed.
| * | | | | Handle reading empty properties defined by the link interface.Stephen Kelly2013-01-312-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | This was segfaulting before.
* | | | | | Merge topic 'add-ExternalData-module'Brad King2013-02-05149-0/+1430
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5484c60 Merge branch 'vs6-rule-files' into add-ExternalData-module 1fd8d01 ExternalData: Attach download rules to content links in IDEs a6d3ffc Fix Module.ExternalData test on VS 6 aed590a Fix Module.ExternalData test on Cygwin 06e8ded Merge branch 'fix-atomic-rename-on-Windows' into add-ExternalData-module e2e0d2e ExternalData: Collapse ../ components in DATA{} paths ee2abfd ExternalData: Add support for SHA 1 and 2 hash algorithms aa8b228 ExternalData: Generalize hash algo/ext handling 9e518a8 ExternalData: Allow DATA{} syntax to reference directories 175ed02 ExternalData: Allow ()-groups in series match regex 4befecc ExternalData: Add tests covering interfaces and errors bcd2580 ExternalData: Improve series matching using an explicit syntax c0cebcb ExternalData: Remove unused private interface 5275993 ExternalData: Cleanup stray TODO and typo in comments 7bb8344 ExternalData: Do not match directory names when resolving DATA{} 00d801f ExternalData: Remove compatibility with CMake < 2.8.5 ...
| * \ \ \ \ \ Merge branch 'vs6-rule-files' into add-ExternalData-moduleBrad King2013-02-041-0/+3
| |\ \ \ \ \ \
| * | | | | | | ExternalData: Attach download rules to content links in IDEsBrad King2013-02-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each data file to be created in the build tree corresponds one-to-one with a raw file or content link in the source tree. Use the MAIN_DEPENDENCY of add_custom_command to attach the build rule to the source tree file. This looks much nicer in the IDE project file browser and avoids ".rule" files.
| * | | | | | | Fix Module.ExternalData test on VS 6Brad King2013-02-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run the test with the ctest --build-noclean option. The test CMakeLists.txt file already uses file(REMOVE_RECURSE) to clean out downloaded data anyway. Some file removed by "msdev ... /clean" causes CMake to re-run in the middle of the build step and file(REMOVE_RECURSE) wipes out already-generated files.
| * | | | | | | Fix Module.ExternalData test on CygwinBrad King2013-02-041-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In ExternalData_URL_TEMPLATES add a leading slash to the path after file:// only if the path does not already start with one.
| * | | | | | | Merge branch 'fix-atomic-rename-on-Windows' into add-ExternalData-moduleBrad King2013-02-041-31/+20
| |\ \ \ \ \ \ \
| * | | | | | | | ExternalData: Collapse ../ components in DATA{} pathsBrad King2013-01-306-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Relative path components need to be normalized out even if they appear in the middle of a caller-supplied string.
| * | | | | | | | ExternalData: Add support for SHA 1 and 2 hash algorithmsBrad King2013-01-3017-2/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the Module.ExternalData and RunCMake.ExternalData tests to cover some of them.
| * | | | | | | | ExternalData: Generalize hash algo/ext handlingBrad King2013-01-301-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use private global variables _ExternalData_REGEX_(ALGO|EXT) to match the possible hash algorithm names and extensions in regular expressions. Use "file(<algo>)" instead of "cmake -E md5sum" to compute hashes without a child process and to support more hash algorithms.
| * | | | | | | | ExternalData: Allow DATA{} syntax to reference directoriesBrad King2013-01-3015-9/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a trailing slash to reference a directory. Require that a list of associated files be specified to select from within the directory. One may simply use DATA{Dir/,REGEX:.*} to reference all files but get a directory passed on the command line.