summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Only use early evaluation termination for transitive properties.Stephen Kelly2013-02-071-1/+4
| | | | | | We need to make sure expressions which evaluate TARGET_PROPERTY:TYPE multiple times for example get the correct result each time, and not an empty string instead.
* Ensure type specific compatible interface properties do not intersect.Stephen Kelly2013-02-074-0/+16
| | | | | Before, the boolean version would always win, and the string one would be ignored.
* The COMPATIBLE_INTERFACE does not affect the target it is set on.Stephen Kelly2013-02-071-0/+15
| | | | Test and document this.
* Test printing origin of include dirs from tll().Stephen Kelly2013-02-072-3/+16
|
* Merge topic 'tll-includes-defines'Brad King2013-02-0527-61/+261
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * 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-3111-53/+148
| | | | | | | | | | | | | | | | 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-318-1/+41
| | | | | | | | | | | | 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.
| * 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-316-2/+14
| | | | | | | | | | | | An empty string is not likely going to produce expected results in any evaluation context. It is replaced by preprocessing currently.
| * Handle reading empty properties defined by the link interface.Stephen Kelly2013-01-311-1/+13
| | | | | | | | This was segfaulting before.
* | Merge topic 'add-ExternalData-module'Brad King2013-02-05147-0/+665
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ...
| * | 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.
| * | ExternalData: Collapse ../ components in DATA{} pathsBrad King2013-01-305-5/+21
| | | | | | | | | | | | | | | 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-3016-0/+44
| | | | | | | | | | | | | | | Update the Module.ExternalData and RunCMake.ExternalData tests to cover some of them.
| * | ExternalData: Allow DATA{} syntax to reference directoriesBrad King2013-01-3014-2/+48
| | | | | | | | | | | | | | | | | | | | | 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-301-1/+1
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Tests: Avoid CTestLimitDashJ crash on Borland 5.8 buildsBrad King2013-01-311-0/+1
| |/ |/| | | | | | | | | | | | | | | | | | | | | The test added by commit e378ba5f (Add CTestLimitDashJ test, 2012-12-26) crashes with CTest compiled by Borland 5.8. There seems to be interaction among the large number of internal ctest runs. It is probably related to the undiscovered underlying issue mentioned in commit 32478069 (CTest: Prevent creation of unbounded number of tests in ctest, 2012-12-18) when fixing the symptom covered by the CTestLimitDashJ test. Add --force-new-ctest-process to avoid the crash. Further investigation will still be needed to identify the true problem.
* | Merge topic 'fix-target-property-commands'Brad King2013-01-306-8/+28
|\ \ | | | | | | | | | | | | | | | | | | 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-295-0/+13
| | | | | | | | | | | | | | | 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-293-8/+15
| | |
* | | Merge topic 'fix-TARGET_PROPERTY-extraction'Brad King2013-01-291-0/+2
|\ \ \ | | | | | | | | | | | | | | | | 5daaa5c Fix TARGET_PROPERTY target extractions.
| * | | Fix TARGET_PROPERTY target extractions.Stephen Kelly2013-01-291-0/+2
| |/ / | | | | | | | | | | | | | | | | | | 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.
* | | Add the INSTALL_PREFIX genex.Stephen Kelly2013-01-273-1/+18
|/ /
* | 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.
* | Add the COMPATIBLE_INTERFACE_STRING property.Stephen Kelly2013-01-2418-1/+103
|/
* Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.Stephen Kelly2013-01-244-1/+40
| | | | | | 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 'disallow-IMPORTED-interface-porcelain'Brad King2013-01-235-27/+2
|\ | | | | | | | | | | b98d14d Disallow porcelain to populate includes and defines of IMPORTED targets. 48a4cf2 Revert "Allow target_link_libraries with IMPORTED targets."
| * Disallow porcelain to populate includes and defines of IMPORTED targets.Stephen Kelly2013-01-214-24/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With similar reasoning to the parent commit, as downstreams, we can't determine what $<CONFIG> generator expressions would be appropriate. Upstream would have populated the INTERFACE_INCLUDE_DIRECTORIES with config-specific generator expressions, possibly appropriate for their DEBUG_CONFIGURATIONS. In theory, if we would add include directories for a DEBUG intent, we would have to match the upstream configurations for that. Rather than attempting to discover the appropriate configurations at this time, simplify the feature instead. The use of IMPORTED targets with these commands could still be added in the future if targets would export their DEBUG_CONFIGURATIONS somehow.
| * Revert "Allow target_link_libraries with IMPORTED targets."Stephen Kelly2013-01-211-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9cfe4f1b769597bd9ba179eba46572a9df27f64c. It turns out that correctly adding the content to the IMPORTED_LINK_INTERFACE_LIBARIES_<CONFIG> of an upstream target from the buildsystem of a downstream project is not simple. If upstream had added the INTERFACE content, the config-specific properties would be determined by the DEBUG_CONFIGURATIONS of upstream. As downstream, we don't have any information about what the DEBUG_CONFIGURATIONS of upstream were, so we can't determine which configuration-specific properties to populate. The best we can do is add it to all of them or add it to the ones downstream considers to be DEBUG_CONFIGURATIONS, neither of which is a good solution. So, removing the porcelain API for that is the best approach. A human can still determine which properties to populate and use the set_property API to populate the desired properies. Another solution to this would be for upstream targets to publish what they consider DEBUG_CONFIGURATIONS, but that can be added in a future release.
* | Merge topic 'clean-include-dirs-debugging'Brad King2013-01-231-15/+8
|\ \ | | | | | | | | | | | | | | | | | | | | | 6063fef Output include directories as LOG messages, not warnings. aa66748 Specify the target whose includes are being listed. d70204a Only output includes once after the start of 'generate-time' when debugging. 0d46e9a Store includes from the same include_directories call together.
| * | Output include directories as LOG messages, not warnings.Stephen Kelly2013-01-211-4/+4
| | |
| * | Specify the target whose includes are being listed.Stephen Kelly2013-01-211-4/+4
| | |
| * | Store includes from the same include_directories call together.Stephen Kelly2013-01-211-7/+0
| |/ | | | | | | | | | | Otherwise, we get a separate IncludeDirectoriesEntry for each include, and that causes unnecessary and confusing splitting in the output when debugging the INCLUDE_DIRECTORIES property.
* | Merge topic 'qt4-autolink-qtmain'Brad King2013-01-2316-4/+121
|\ \ | | | | | | | | | | | | | | | e3b5eb6 Automatically link to the qtmain library when linking to QtCore. 6c8d8af Add the $<TARGET_POLICY> expression
| * | Automatically link to the qtmain library when linking to QtCore.Stephen Kelly2013-01-232-4/+59
| | | | | | | | | | | | | | | When using QAxServer, ensure that the qtmain library is excluded by reporting an error at CMake time if it is not.
| * | Add the $<TARGET_POLICY> expressionStephen Kelly2013-01-1714-0/+62
| |/ | | | | | | | | | | This new expression allows checking how a policy was set when a target was created. That information is only recorded for a subset of policies, so a whitelist is used.
* | Merge topic 'fix-COMPATIBLE_INTERFACE-properties'Brad King2013-01-2323-1/+147
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 830246e Export the COMPATIBLE_INTERFACE_BOOL content properties bd82bb4 Clear the link information in ClearLinkMaps. e987991 Make INTERFACE determined properties readable in generator expressions. d9afacc Exit early if we find an inconsistent property. 1800f70 Populate the link information cache before checking dependent properties.
| * | Export the COMPATIBLE_INTERFACE_BOOL content propertiesStephen Kelly2013-01-213-0/+15
| | |
| * | Make INTERFACE determined properties readable in generator expressions.Stephen Kelly2013-01-2022-1/+132
| |/ | | | | | | | | The properties are evaluated as link-dependent interface properties when evaluating the generator expressions.
* | Merge topic 'fix-target_include_directories-genex'Brad King2013-01-231-1/+6
|\ \ | | | | | | | | | | | | 24dcf0c Make sure generator expressions can be used with target_include_directories.
| * | Make sure generator expressions can be used with target_include_directories.Stephen Kelly2013-01-161-1/+6
| |/ | | | | | | | | Handle the case that a generator expression is used before treating a non-target as an error.
* | Merge topic 'vs11-external-include'Brad King2013-01-232-0/+2
|\ \ | | | | | | | | | | | | bc65b74 VS11: Fix VSExternalInclude test
| * | VS11: Fix VSExternalInclude testBrad King2013-01-162-0/+2
| |/ | | | | | | | | | | | | | | | | Set CMAKE_SUPPRESS_REGENERATION in the Lib1 and Lib2 projects so that their .vcxproj files do not contain references to ZERO_CHECK. Such references do not make sense when using the files in another .sln file. This does not reduce the effectiveness of the test because real projects that use include_external_msproject will have their own .vcxproj files not generated by CMake anyway.
* | Merge topic 'ExternalProject-DEPENDS-target'Brad King2013-01-231-1/+3
|\ \ | | | | | | | | | | | | c0f1af9 ExternalProject: Allow DEPENDS on normal targets (#13849)
| * | ExternalProject: Allow DEPENDS on normal targets (#13849)Brad King2013-01-161-1/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ExternalProject_Add DEPENDS option adds two types of dependencies. It adds a target-level build order dependency between the external project target and the named targets. It also adds a file-level dependency on the "done" stamp file of the named external project targets. Targets not created by ExternalProject_Add have no such stamp file and no _EP_STAMP_DIR property. Prior to commit d14c0243 (Refactor repeated code into function, 2012-04-26) we unconditionally accepted an empty stamp dir and generated a dependency on a non-existent file. After that commit we generate an error that no stamp dir is set. Skip the file-level dependency when the named dependency is not an external project target in order to allow this use case. Teach the ExternalProject test to cover the case.