summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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 'fix-target-property-commands'Brad King2013-01-3012-83/+98
|\ | | | | | | | | | | | | 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-2911-18/+89
| | | | | | | | | | 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-299-74/+16
| |
| * 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-292-11/+5
|\ \ | | | | | | | | | | | | 5daaa5c Fix TARGET_PROPERTY target extractions.
| * | Fix TARGET_PROPERTY target extractions.Stephen Kelly2013-01-292-11/+5
| | | | | | | | | | | | | | | | | | | | | 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 'FindGTK2-lib-order'Brad King2013-01-291-35/+41
|\ \ \ | | | | | | | | | | | | | | | | 399c3b8 FindGTK2: Fix GTK2_LIBRARIES order for static gtk libraries
| * | | FindGTK2: Fix GTK2_LIBRARIES order for static gtk librariesRodolfo Schulz de Lima2013-01-281-35/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this, when creating GTK2_LIBRARIES, FindGTK2 added the GTK dependencies in wrong order into GTK2_LIBRARIES. With dynamic libraries this is not a major problem, but when linking to static gtk libraries, the linker outputs a lot of undefined symbols. Reorder the calls that append libraries to GTK2_LIBRARIES to respect dependency order.
* | | | 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-299-30/+97
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-279-1/+69
| | | | | |
| * | | | | 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
| | | | | |
* | | | | | Merge topic 'PackageConfigHelper_UsrMove'Brad King2013-01-291-4/+22
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4cad848 configure_package_config_file(): extend documentation 37c4bc1 configure_package_config_file(): fix indentation d477414 configure_package_config_file: force absolute paths for usr-move
| * | | | | configure_package_config_file(): extend documentationAlex Neundorf2013-01-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Alex
| * | | | | configure_package_config_file(): fix indentationAlex Neundorf2013-01-241-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a separate commit, so that the previous commit is smaller. Alex
| * | | | | configure_package_config_file: force absolute paths for usr-moveAlex Neundorf2013-01-241-0/+16
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The configure_package_config()_file() macro will now use absolute paths for the PATH_VARS if the Config.cmake file will be installed into /lib(64) or /usr/lib(64), since due to the usr-move filesystem changes Config.cmake files installed there may be found via two paths (once per symlink via /lib(64) and once via /usr/lib ), and in this case relative paths break. Alex
* | | | | 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 'debug-ProcessorCount'Brad King2013-01-252-4/+12
|\ \ \ | | | | | | | | | | | | | | | | | | | | 4d0e2e8 ProcessorCount test: require SystemInformation process to work e03f83f ProcessorCount test: fix path to cmsysTestsCxx executable
| * | | ProcessorCount test: require SystemInformation process to workRolf Eike Beer2013-01-241-1/+8
| | | | | | | | | | | | | | | | | | | | Currently this silently fails on some systems. Make sure those things get noticed so we can fix that.
| * | | ProcessorCount test: fix path to cmsysTestsCxx executableRolf Eike Beer2013-01-242-3/+4
| |/ / | | | | | | | | | | | | Use a generator expression to get the real place of this target instead of guessing it wrong.
* | | Merge topic 'generator-expression-lf'Brad King2013-01-251-4/+5
|\ \ \ | | | | | | | | | | | | | | | | 6c57c31 doc: fix linebreaks in generator expression documentation
| * | | doc: fix linebreaks in generator expression documentationRolf Eike Beer2013-01-241-4/+5
| |/ /
* | | Merge topic 'doc-link-interface'Brad King2013-01-251-1/+3
|\ \ \ | | | | | | | | | | | | | | | | f032fb9 target_link_libraries: Document that new sigs privatize old (#13876)
| * | | target_link_libraries: Document that new sigs privatize old (#13876)Brad King2013-01-241-1/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explain in the documentation for the legacy signature target_link_libraries(foo bar) that the other signatures like target_link_libraries(foo LINK_INTERFACE_LIBRARIES ...) target_link_libraries(foo LINK_PRIVATE ...) will set the LINK_INTERFACE_LIBRARIES target property and therefore make libraries specified only by the legacy signature private.
* | | Merge topic 'compatible-interface-strings'Brad King2013-01-2522-48/+303
|\ \ \ | | | | | | | | | | | | | | | | | | | | 2fb2c32 Add the COMPATIBLE_INTERFACE_STRING property. cd66b91 Make calculation of link-interface-dependent properties type-sensitive.
| * | | Add the COMPATIBLE_INTERFACE_STRING property.Stephen Kelly2013-01-2422-1/+186
| | | |
| * | | Make calculation of link-interface-dependent properties type-sensitive.Stephen Kelly2013-01-241-48/+118
| |/ /
* | | CMake Nightly Date StampKitware Robot2013-01-251-1/+1
|/ /
* | Merge topic 'fix-COMPATIBLE_INTERFACE-link-libraries'Brad King2013-01-245-3/+48
|\ \ | | | | | | | | | | | | 6fbe3ce Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.
| * | Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.Stephen Kelly2013-01-245-3/+48
| | | | | | | | | | | | | | | | | | These interface-related link-libraries properties are used to determine the value of the other INTERFACE properties, so we were getting infinite recursion and segfaults otherwise.
* | | Merge topic 'cmMakefile-comment-typos'Brad King2013-01-241-3/+3
|\ \ \ | | | | | | | | | | | | | | | | 3853a6c spell: fix a few typos in comments