summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* FindQt4: Add INTERFACE includes and defines to Qt4 targetsStephen Kelly2013-01-102-2/+17
|
* Merge topic 'osx-implicit-link-dirs'Brad King2013-01-072-3/+107
|\ | | | | | | | | | | | | cc676c3 OS X: Detect implicit linker framework search paths 2dd67c7 OS X: Detect implicit link directories on modern toolchains ba58d0c OS X: Link with all framework search paths, not just the last
| * OS X: Detect implicit linker framework search pathsBrad King2012-12-112-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we hard-coded a list of implicit framework directories but did not account for CMAKE_OSX_SYSROOT or for changes to the list across OS X versions. Instead we should automatically detect the framework directories for the active toolchain. The parent commit added the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays a block such as: Framework search paths: /... Parse this block to extract the list of framework directories. Detection may fail on toolchains that do not list their framework directories, such as older OS X linkers. Always treat the paths <sdk>/Library/Frameworks <sdk>/System/Library/Frameworks <sdk>/Network/Library/Frameworks # Older OS X only /System/Library/Frameworks as implicit. Note that /System/Library/Frameworks should always be considered implicit so that frameworks CMake finds there will not override the SDK copies.
| * OS X: Detect implicit link directories on modern toolchainsBrad King2012-12-111-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We detect the implicit link directories for the toolchain by adding a flag to get verbose output from the compiler front-end while linking the ABI detection binary. Newer OS X toolchains based on Clang do not add the implicit link directories with -L options to their internal invocation of "ld". Instead they use a linker that comes with the toolchain and is already configured with the proper directories. Add the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays them in a block such as: Library search paths: /... Parse this block to extract the implicit link directories. While at it, remove the checks introduced by commit efaf335b (Skip implicit link information on Xcode, 2009-07-23) and commit 5195a664 (Skip implicit link info for multiple OS X archs, 2009-09-22). Discard the non-system link directories added by Xcode. Discard all detected implicit libraries in the multi-architecture case but keep the directories. The directories are still useful without the libraries just to suppress addition of explicit -L options for them.
* | Merge topic 'interface-includes-defines'Brad King2013-01-0713-30/+222
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 894f52f Handle INTERFACE properties transitively for includes and defines. f5b1980 Populate the ExportedTargets member early in GenerateMainFile c67b812 Make cycles in target properties ignored, not an error. d0f950f Use mapped config properties to evaluate $<CONFIG> 26def17 Make all relevant targets available in the genex context. 0c657dc Add API to populate INTERFACE properties in exported targets. e04f737 Add API to extract target names from a genex string. b0c8f73 Add the TARGET_NAME generator expression. 77475fe Allow generator expressions to require literals. b2f1700 GenEx: Add expressions to specify build- or install-only values
| * | Handle INTERFACE properties transitively for includes and defines.Stephen Kelly2013-01-055-1/+160
| | | | | | | | | | | | | | | Contextually, the behavior is as if the properties content from another target is included in the string and then the result is evaluated.
| * | Add the TARGET_NAME generator expression.Stephen Kelly2013-01-056-0/+17
| | | | | | | | | | | | It will be used as a preprocessing marker.
| * | GenEx: Add expressions to specify build- or install-only valuesStephen Kelly2013-01-054-29/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is for specifying INCLUDE_DIRECTORIES relevant to the build-location or the install location for example: set_property(TARGET foo PROPERTY INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}>" "$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>" ) A 'bar' target can then use: set_property(TARGET bar PROPERTY INCLUDE_DIRECTORIES "$<TARGET_PROPERTY:foo,INTERFACE_INCLUDE_DIRECTORIES>" ) and it will work whether foo is in the same project, or an imported target from an installation location, or an imported target from a build location generated by the export() command. Because the generator expressions are only evaluated at build-time, these new expressions are equivalent to the ZeroNode and OneNode. The GeneratorExpression test is split into parts. Some shells can't run the custom command as it is getting too long.
* | | Merge topic 'test-genex-custom-command'Brad King2013-01-071-0/+6
|\ \ \ | | | | | | | | | | | | | | | | 119bf4b Add test for custom command with a genex referring to a target.
| * | | Add test for custom command with a genex referring to a target.Stephen Kelly2013-01-071-0/+6
| |/ / | | | | | | | | | | | | This test failed before d8a59ea4 (Port cmGeneratorExpression to cmTarget from cmGeneratorTarget, 2012-10-27), and passes after.
* | | Merge topic 'qt4-target-depends'Brad King2013-01-073-0/+45
|\ \ \ | |/ / |/| | | | | | | | 57a67bf Qt4: Add module dependencies to the IMPORTED targets
| * | Qt4: Add module dependencies to the IMPORTED targetsStephen Kelly2013-01-073-0/+45
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | This means for example, that consumers can use: target_link_libraries(foo ${QT_QTGUI_LIBRARIES}) instead of also needing to specify all 'public' dependencies: target_link_libraries(foo ${QT_QTGUI_LIBRARIES} ${QT_QTCORE_LIBRARIES} ) when using the IMPORTED targets. Also populate the IMPORTED_LINK_DEPENDENT_LIBRARIES property so CMake can help the linker find shared library dependencies.
* | Merge topic 'fix-test-warnings'Brad King2013-01-031-1/+1
|\ \ | | | | | | | | | | | | b6346f2 Tests: Fix warning about unused variable
| * | Tests: Fix warning about unused variableStephen Kelly2013-01-031-1/+1
| |/ | | | | | | | | | | | | | | | | Resolve this warning: ".../Tests/CMakeCommands/target_link_libraries/depB.cpp", line 8: warning: variable "a" was declared but never referenced DepA a; ^
* | Merge topic 'include-dirs-debugging'Brad King2013-01-0313-13/+113
|\ \ | | | | | | | | | | | | | | | | | | 0941d62 Add a way to print the origins of used include directories. 18a3195 Keep track of INCLUDE_DIRECTORIES as a vector of structs. 76ea420 Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressions
| * | Add a way to print the origins of used include directories.Stephen Kelly2013-01-034-0/+82
| | |
| * | Keep track of INCLUDE_DIRECTORIES as a vector of structs.Stephen Kelly2013-01-039-13/+31
| |/ | | | | | | | | The struct can keep track of where the include came from, which gives us proper backtraces.
* | Merge topic 'fix-12904-avoid-overflow'Brad King2013-01-033-0/+101
|\ \ | | | | | | | | | | | | | | | e378ba5 Add CTestLimitDashJ test (#12904) 3247806 CTest: Prevent creation of unbounded number of tests in ctest (#12904)
| * | Add CTestLimitDashJ test (#12904)David Cole2013-01-033-0/+101
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a test that verifies that when ctest -j 4 is called, at most, 4 tests are executed at any one time. The test works by running the same script as each of 100 tests. And then setting up test properties for DEPENDS, RUN_SERIAL, PROCESSORS and COST in order to get the tests to run in a semi-deterministic ordering, even in parallel. The script writes a file, sleeps for a bit, and then deletes the file. In the meantime, it counts files that currently exist, and emits output that triggers a test failure if the count of files is ever greater than 4. Prior to the commit that fixed bug #12904, this would result in a failed test because the output of some of the tests would indicate that more than 4 tests were running simultaneously. Now that this issue is resolved, this test will help guarantee that it stays resolved moving forward.
* | Make targets depend on the link interface of their dependees.Stephen Kelly2013-01-034-1/+25
|/
* Merge topic 'skip-variable-re-expansion'David Cole2012-12-118-0/+63
|\ | | | | | | | | 711b63f Add policy CMP0019 to skip include/link variable re-expansion
| * Add policy CMP0019 to skip include/link variable re-expansionBrad King2012-12-078-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Historically CMake has always expanded ${} variable references in the values given to include_directories(), link_directories(), and link_libraries(). This has been unnecessary since general ${} evaluation syntax was added to the language a LONG time ago, but has remained for compatibility with VERY early CMake versions. For a long time the re-expansion was a lightweight operation because it was only processed once at the directory level and the fast-path of cmMakefile::ExpandVariablesInString was usually taken because values did not have any '$' in them. Then commit d899eb71 (Call ExpandVariablesInString for each target's INCLUDE_DIRECTORIES, 2012-02-22) made the operation a bit heavier because the expansion is now needed on a per-target basis. In the future we will support generator expressions in INCLUDE_DIRECTORIES with $<> syntax, so the fast-path in cmMakefile::ExpandVariablesInString will no longer be taken and re-expansion will be very expensive. Add policy CMP0019 to skip the re-expansion altogether in NEW behavior. In OLD behavior perform the expansion but improve the fast-path heuristic to match ${} but not $<>. If the policy is not set then warn if expansion actually does anything. We expect this to be encountered very rarely in practice.
* | CMake: Stylistic changes and documentation tweaksDavid Cole2012-12-051-2/+0
| | | | | | | | ...for the contributed file and string TIMESTAMP sub-commands.
* | CMake: Add TIMESTAMP subcommand to string and file commandsNils Gladitz2012-12-0517-0/+99
| |
* | Merge topic 'fix-11575-add-wix-support-to-cpack'David Cole2012-12-057-0/+182
|\ \ | | | | | | | | | | | | | | | | | | | | | a74bd47 CPack: Fix dashboard errors and warnings (#11575) ad0f735 CPack: Fix dashboard warnings (#11575) 0729ad4 CPack: Fix dashboard errors (#11575) 85baac1 CPack: Add a WiX Generator (#11575)
| * | CPack: Add a WiX Generator (#11575)Nils Gladitz2012-12-037-0/+182
| |/ | | | | | | | | | | | | | | | | | | This new CPack generator produces an *.msi installer file. Requires having the WiX Toolset installed in order to work properly. Download the WiX Toolset installer "WiX36.exe" here: http://wix.codeplex.com/releases/view/93929
* | Merge topic 'fix-cpack-tests'Brad King2012-11-303-15/+7
|\ \ | | | | | | | | | | | | 587b7b6 Tests: Use the right path to CPack value for running CPack tests
| * | Tests: Use the right path to CPack value for running CPack testsDavid Cole2012-11-293-15/+7
| |/ | | | | | | | | | | | | | | | | These tests were not running properly on Visual Studio or Xcode dashboards before this commit because of the "Debug" or "Release" sub-directory. The scripts already have CMAKE_CPACK_COMMAND since the correct CMake executable is used to run the scripts, so just use that, rather than passing down an incorrect path to the CPack executable.
* | Merge topic 'fix-watcom-test-timeout'Brad King2012-11-301-1/+1
|\ \ | | | | | | | | | | | | 2238505 Watcom: Avoid prompt from wmake about dll with no exports...
| * | Watcom: Avoid prompt from wmake about dll with no exports...David Cole2012-11-281-1/+1
| | | | | | | | | | | | | | | ...by simply building a STATIC lib for the test, instead of a SHARED one. Fixes test timeout on the Watcom dashboards.
* | | Merge topic 'multiarch-include'Brad King2012-11-304-0/+32
|\ \ \ | |_|/ |/| | | | | | | | | | | da1d9ba Test find_path multiarch support (#13742) b96f6fc Teach find_(path|file) about Linux multiarch (#13742)
| * | Test find_path multiarch support (#13742)Brad King2012-11-264-0/+32
| | |
* | | Merge topic 'generator-expression-fixes'Brad King2012-11-274-0/+24
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | b581be0 Genex: Don't segfault on $<FOO,> 07749e3 Genex: Ensure that $<0:...> has a parameter. ee96dc7 Genex: Extract a method to parse parameters.
| * | Genex: Don't segfault on $<FOO,>Stephen Kelly2012-11-272-0/+10
| | | | | | | | | | | | | | | | | | Treat the comma as part of the identifier here. It will later not resolve to a generator expression and the user gets a proper error message.
| * | Genex: Ensure that $<0:...> has a parameter.Stephen Kelly2012-11-274-0/+14
| |/
* | NMake: Add a test to demonstrate EmptyDepends issue (#13392)David Cole2012-11-212-0/+17
|/
* Merge topic 'per-config-EXCLUDE_FROM_DEFAULT_BUILD' into vs-global-sectionsBrad King2012-11-165-0/+92
|\ | | | | | | | | Conflicts: Source/cmGlobalVisualStudio7Generator.h
| * Serialize tests for EXCLUDE_FROM_DEFAULT_BUILDBrad King2012-11-131-0/+7
| | | | | | | | | | The tests share a single build directory and so should not run in parallel. While at it, add the build dir to the test_clean target.
| * Add tests for EXCLUDE_FROM_DEFAULT_BUILDPetr Kmoch2012-11-135-0/+85
| | | | | | | | | | Add tests for EXCLUDE_FROM_DEFAULT_BUILD and its per-configuration variants.
* | Add tests for VS_SOLUTION_GLOBAL_SECTIONSPetr Kmoch2012-11-1618-0/+120
| | | | | | | | | | Add tests for correct appliation of directory properties VS_SOLUTION_GLOBAL_SECTIONS_*
* | Merge topic 'only-git-fetch-when-necessary'Brad King2012-11-135-0/+229
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a41d3a4 ExternalProjectUpdateTest: Only support Git 1.6.5 and greater. de760c1 ExternalProject: Verify when a fetch occurs during update test. 0a34433 ExternalProject: Make sure the ExternalProjectUpdate setup is available. 9b66c8f ExternalProject: Always do a git fetch for a remote ref. 2619f4d ExternalProject: Add tests for UPDATE_COMMAND. 378aa12 ExternalProject: Do smoke tests for Git Tutorial builds. d075829 ExternalProject: Only run 'git fetch' when required.
| * | ExternalProjectUpdateTest: Only support Git 1.6.5 and greater.Matt McCormick2012-11-131-0/+18
| | |
| * | ExternalProject: Verify when a fetch occurs during update test.Matt McCormick2012-11-131-10/+26
| | | | | | | | | | | | | | | | | | | | | The performance feature of only performing a git fetch when needed during the ExternalProject update step is verified during the test. A fetch is identified by removing the FETCH_HEAD file and checking for its reincarnation.
| * | ExternalProject: Make sure the ExternalProjectUpdate setup is available.Matt McCormick2012-11-132-3/+19
| | | | | | | | | | | | | | | This prepares the numberous tests that occur in the ExternalProjectUpdate test. The tests were passing previously because a fresh build was not performed.
| * | ExternalProject: Always do a git fetch for a remote ref.Matt McCormick2012-11-131-1/+3
| | | | | | | | | | | | | | | Remote git refs always require a git fetch, because the remote may move around where the ref points.
| * | ExternalProject: Add tests for UPDATE_COMMAND.Matt McCormick2012-11-134-0/+166
| | | | | | | | | | | | | | | | | | Tests are added for UPDATE_COMMAND to ensure it is working properly. Testing infrastructure is added along with tests for Git, but tests for other version control systems could easily be added in the future.
| * | ExternalProject: Do smoke tests for Git Tutorial builds.Matt McCormick2012-11-031-0/+11
| | |
* | | Merge topic 'link-depends-no-shared'Brad King2012-11-135-0/+73
|\ \ \ | | | | | | | | | | | | | | | | | | | | 306796e Teach BuildDepends test to cover LINK_DEPENDS_NO_SHARED ed97631 Optionally skip link dependencies on shared library files
| * | | Teach BuildDepends test to cover LINK_DEPENDS_NO_SHAREDBrad King2012-11-095-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Build a shared library and an executable linking to it inside the inner test. Set LINK_DEPENDS_NO_SHARED on the executable. Add a custom target to compare the output file times. Verify that on the first build the executable is newer than the library. Then modify a library source file. Verify that on the second build the library is newer because the executable did not have a dependency to re-link.
* | | | Merge topic 'deprecate-load_command'Brad King2012-11-135-0/+14
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | d2d4398 load_command: Deprecate and document pending removal