summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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.
| * 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.
| | * | | | ExternalData: Allow ()-groups in series match regexBrad King2013-01-302-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor use of the ExternalData_SERIES_MATCH value to avoid assuming that it has no ()-groups that interfere with group indexing. Extend the Module.ExternalData test to cover this case.
| | * | | | ExternalData: Add tests covering interfaces and errorsBrad King2013-01-30123-0/+554
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a Module.ExternalData test to verify data retrieval and test argument DATA{} references. Add a RunCMake.ExternalData test to verify error handling and automatic transformation of a raw data to a content link and staged object.
| | * | | | ExternalData: Improve series matching using an explicit syntaxBrad King2013-01-291-27/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Automatic series recognition can generate false positives too easily when the default series configuration is flexible enough to handle common cases. Avoid false positives by requiring an explicit syntax to activate series recognition. Choose the syntax DATA{<name>,:} to be short, simple, and look like a vertical ellipsis. This allows us to improve the default series match configuration. Allow series references to contain one of the numbered file names. Allow '-' as a separator in addition to '.' and '_'. Document what the default configuration matches. Also provide more options to configure series <name> parsing.
| | * | | | ExternalData: Remove unused private interfaceBrad King2013-01-281-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'store' action was part of an older design and is no longer needed. Remove it.
| | * | | | ExternalData: Cleanup stray TODO and typo in commentsBrad King2013-01-281-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove an outdated TODO line left from earlier designs. Also fix a typo.
| | * | | | ExternalData: Do not match directory names when resolving DATA{}Brad King2013-01-281-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our content link and object download infrastructure supports only blobs (files), not trees (directories). Do not allow references to end in a slash.
| | * | | | ExternalData: Remove compatibility with CMake < 2.8.5Brad King2013-01-241-17/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that the module comes in a sufficiently new CMake it does not need to support older versions.
| | * | | | Add ExternalData moduleBrad King2013-01-242-0/+714
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Take files we previously distributed in ITK 4.3.1: CMake/ExternalData.cmake CMake/ExternalData_config.cmake.in and add them for distribution in upstream CMake. Update the copyright notice block format to follow CMake conventions.
| * | | | | Merge topic 'ninja-link-rsp-newlines'Brad King2013-02-051-1/+1
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | a55d5ca Ninja: Avoid LNK1170 linker error
| | * | | | | Ninja: Avoid LNK1170 linker errorPatrick Gansterer2013-02-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | link.exe has problems with very very long lines in rsp files too. Use $in_newline instead of $in variable for rspcontent which separates the arguments with a newline instead of a simple space and was specially made for this purpose.
| * | | | | | Merge topic 'vs6-rule-files'Brad King2013-02-051-0/+3
| |\ \ \ \ \ \ | | | |_|_|/ / | | |/| | | | | | | | | | | | | | | | | | 0f24a66 VS 6: Create .rule file directory before file
| | * | | | | VS 6: Create .rule file directory before fileBrad King2013-02-031-0/+3
| | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | The VS 6 IDE wants .rule files to exist in order to run the rule attached to it. When creating the dummy .rule file make sure the directory exists.
| * | | | | Merge topic 'fix-atomic-rename-on-Windows'Brad King2013-02-051-31/+20
| |\ \ \ \ \ | | | |_|/ / | | |/| | | | | | | | | | | | | | | 59b568e Fix cmSystemTools::RenameFile race on Windows
| | * | | | Fix cmSystemTools::RenameFile race on WindowsBrad King2013-02-041-31/+20
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit d46d8df0 (Re-implemented cmGeneratedFileStream to look like a real stream and replace the destination file atomically, 2004-11-03) our RenameFile implementation tries to deal with MoveFile not replacing read-only files. In order to avoid the Get/SetFileAttributes pair we used stat to test for existence of the destination file. This has a race in which the destination could be created between the test for existence and the MoveFile call. Remove the stat call and use GetFileAttributes to detect whether the file exists. This shortens the race but does not eliminate it. Use a loop to try multiple times in case we lose the race. While at it, drop Win9x support and always use MoveFileEx.
| * | | | Merge topic 'fix-include-directories-unix-path'Brad King2013-02-051-2/+2
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | b6f6654 Use the result of converting to a unix path.
| | * | | | Use the result of converting to a unix path.Stephen Kelly2013-02-051-2/+2
| | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | The commit 18a3195a ('Keep track of INCLUDE_DIRECTORIES as a vector of structs.', 2012-11-19) moved the handling of includes from cmGeneratorTarget to cmTarget, but in the process introduced this bug.
| * | | | Merge topic 'wince-cmake-variable'Brad King2013-02-051-2/+3
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | fd2a0d5 Set WINCE to 1 when building for WindowsCE
| | * | | | Set WINCE to 1 when building for WindowsCEPatrick Gansterer2013-02-011-2/+3
| | |/ / / | | | | | | | | | | | | | | | | | | | | Introduce a new variable WINCE to make the WindowsCE system more easy to use in if statements.
| * | | | Merge topic 'update-kwsys'Brad King2013-02-0510-38/+94
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 588d705 Merge branch 'upstream-kwsys' into update-kwsys 23ae484 KWSys 2013-01-31 (5b0d1bd9)
| | * \ \ \ Merge branch 'upstream-kwsys' into update-kwsysBrad King2013-02-0110-38/+94
| | |\ \ \ \ | | | |/ / / | | |/| | |
| | | * | | KWSys 2013-01-31 (5b0d1bd9)KWSys Robot2013-02-0110-38/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ 5b0d1bd9 | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' 6fa1c99f..5b0d1bd9 Alan Hourihane (2): e81e2b72 DynamicLoader: Implement on Atari FreeMINT 5c4dcb2b ProcessUNIX: No select on Atari FreeMINT Sean McBride (2): bff2ea07 Glob: Fix clang -Wdocumentation warning 5b0d1bd9 Fix clang -Weverything warnings Change-Id: I8b342bea8bc9c7b92a856ddc948e1b56f5e74b98
| * | | | | Merge topic 'new-command-class-type-macros'Brad King2013-02-053-2/+3
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9397270 Fix use of cmTypeMacro in new command classes
| | * | | | | Fix use of cmTypeMacro in new command classesBrad King2013-01-313-2/+3
| | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both commit 8a37ebec (Add the target_include_directories command, 2013-01-01) and commit fc61a7a7 (Add the target_compile_definitions command, 2013-01-08) added command implementations deriving from the new cmTargetPropCommandBase class. Fix cmTypeMacro declarations of the inheritance relationship.
| * | | | | Merge topic 'avoid-CTestLimitDashJ-crash-on-Borland'Brad King2013-02-051-0/+1
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 19f3208 Tests: Avoid CTestLimitDashJ crash on Borland 5.8 builds