summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into generator-toolsetBrad King2013-02-0756-471/+1425
|\ | | | | | | We need the latest Tests/CMakeLists.txt so we can refactor all tests.
| * Merge topic 'tll-includes-defines'Brad King2013-02-0514-33/+372
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | |
| | * Add includes and compile definitions with target_link_libraries.Stephen Kelly2013-01-313-3/+65
| | | | | | | | | | | | | | | | | | | | | | | | 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-314-8/+155
| | | | | | | | | | | | | | | | | | 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.
| | * Make it an error for INSTALL_PREFIX to be evaluated.Stephen Kelly2013-01-311-3/+6
| | | | | | | | | | | | | | | | | | 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-311-1/+3
| | | | | | | | | | | | This was segfaulting before.
| * | 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 '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
| | |/ / /
| * | | | 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.
| * | | | CMake Nightly Date StampKitware Robot2013-02-051-1/+1
| | | | |
| * | | | CMake Nightly Date StampKitware Robot2013-02-041-1/+1
| | | | |
| * | | | CMake Nightly Date StampKitware Robot2013-02-031-1/+1
| | | | |
| * | | | CMake Nightly Date StampKitware Robot2013-02-021-1/+1
| | |/ / | |/| |
| * | | CMake Nightly Date StampKitware Robot2013-02-011-1/+1
| | | |
| * | | CMake Nightly Date StampKitware Robot2013-01-311-1/+1
| |/ /
| * | Merge topic 'fix-target-property-commands'Brad King2013-01-306-75/+70
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7bf490e Make subclasses responsible for joining content. f6b16d4 Don't allow targets args in the new target commands. b3a7e19 Make the Property name protected so that subclasses can use it.
| | * | Make subclasses responsible for joining content.Stephen Kelly2013-01-296-18/+76
| | | | | | | | | | | | | | | | | | | | This way we can add handling of relative/absolute paths and of -D in compile definitions.
| | * | Don't allow targets args in the new target commands.Stephen Kelly2013-01-296-66/+1
| | | |
| | * | Make the Property name protected so that subclasses can use it.Stephen Kelly2013-01-291-1/+3
| | | | | | | | | | | | | | | | Makes subclasses more dry in upcoming patches.
| * | | CMake Nightly Date StampKitware Robot2013-01-301-1/+1
| | | |
| * | | Merge topic 'fix-TARGET_PROPERTY-extraction'Brad King2013-01-291-11/+3
| |\ \ \ | | | | | | | | | | | | | | | | | | | | 5daaa5c Fix TARGET_PROPERTY target extractions.
| | * | | Fix TARGET_PROPERTY target extractions.Stephen Kelly2013-01-291-11/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to make sure we can export targets which have content such as $<0:$<TARGET_PROPERTY:not_a_target,INTERFACE_INCLUDE_DIRECTORIES> That means making not finding a target non-fatal here.
| * | | | Merge topic 'DocumentRelativePathHandling'Brad King2013-01-292-6/+5
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a7d6ebb documentation: handling of relative paths by include- and link_directories()
| | * | | | documentation: handling of relative paths by include- and link_directories()Alex Neundorf2013-01-272-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | Alex
| * | | | | Merge topic 'fix-relocatable-include-dirs'Brad King2013-01-296-29/+79
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 34d1ade Add the INSTALL_PREFIX genex. 3a17197 Generate the _IMPORT_PREFIX in the non-config export file.
| | * | | | | Add the INSTALL_PREFIX genex.Stephen Kelly2013-01-276-0/+51
| | | | | | |
| | * | | | | Generate the _IMPORT_PREFIX in the non-config export file.Stephen Kelly2013-01-271-29/+28
| | |/ / / /
| * | | | | Merge topic 'fix-automoc-compile-defs'Brad King2013-01-2912-52/+52
| |\ \ \ \ \ | | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | 429e369 Process COMPILE_DEFINITIONS as generator expressions in QtAutomoc. 0e10782 Move GetCompileDefinitions to cmTarget.
| | * | | | Process COMPILE_DEFINITIONS as generator expressions in QtAutomoc.Stephen Kelly2013-01-291-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Fixes #13493.
| | * | | | Move GetCompileDefinitions to cmTarget.Stephen Kelly2013-01-2911-51/+47
| | | |_|/ | | |/| |
| * | | | CMake Nightly Date StampKitware Robot2013-01-291-1/+1
| | | | |
| * | | | CMake Nightly Date StampKitware Robot2013-01-281-1/+1
| | | | |
| * | | | CMake Nightly Date StampKitware Robot2013-01-271-1/+1
| | |/ / | |/| |
| * | | CMake Nightly Date StampKitware Robot2013-01-261-1/+1
| | |/ | |/|
| * | Merge topic 'generator-expression-lf'Brad King2013-01-251-4/+5
| |\ \ | | | | | | | | | | | | | | | | 6c57c31 doc: fix linebreaks in generator expression documentation