summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'cross-compiling-toolchain-variables'Brad King2013-11-2211-0/+193
|\ | | | | | | | | 7521da2 Introduce CMAKE_STAGING_PREFIX variable.
| * Introduce CMAKE_STAGING_PREFIX variable.Stephen Kelly2013-11-2111-0/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This variable can be useful in cross-compiling contexts where the sysroot is read-only or where the sysroot should otherwise remain pristine. If the new CMAKE_STAGING_PREFIX variable is set, it is used instead of CMAKE_INSTALL_PREFIX when generating the installation rules in cmake_install.cmake. This way, the CMAKE_INSTALL_PREFIX variable always refers to the installation prefix on the target device, regardless of whether host==target. If any -rpath paths passed to the linker contain the CMAKE_STAGING_PREFIX, the matching path fragments are replaced with the CMAKE_INSTALL_PREFIX. Matching paths in the -rpath-link are not transformed. The cross-prefix usr-move workaround is assumed not to require extension regarding CMAKE_STAGING_PREFIX. The staging area is a single prefix, so there is no scope for cross-prefix symlinks. The CMAKE_INSTALL_PREFIX is still used to determine the workaround path, and that variable remains the relevant one even if CMAKE_STAGING_PREFIX is used. If the generated export files are deployed to the target, the workaround will still be in place, and still be employed if required.
* | Add policy CMP0040 to disallow custom commands on missing targetsNils Gladitz2013-11-2119-0/+74
| |
* | Tests: Don't read the LOCATION property from build targets.Stephen Kelly2013-11-197-28/+13
|/
* Merge topic 'cleanup-build-commands'Brad King2013-11-1918-250/+228
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4cce44b Help: Document the CMAKE_MAKE_PROGRAM variable in more detail 558c74d VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generators 5229f2d Tests: Do not use an explicit make program for VS generators 72dd738 Tests: Fix MFC test heuristic for empty CMAKE_TEST_MAKEPROGRAM fd6076d Tests: Pass CMAKE_MAKE_PROGRAM instead of --build-makeprogram 68031ab Tests: Configure SubProject-Stage2 test more robustly 003d10c Tests: Simplify VSExcludeFromDefaultBuild configuration e47d934 Tests: Simplify VSProjectInSubdir configuration e965cb1 Tests: Simplify CTest.BuildCommand.ProjectInSubdir configuration 72bf255 Tests: Pass --build-options to every test 4d1d772 ctest: Teach --build-options to allow zero options 96966b5 ctest: Make the --build-makeprogram optional for --build-and-test 91a0211 Simplify some calls to cmGlobalGenerator::Build 123a060 Teach GenerateBuildCommand to find its own make program 5f5c92b VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdev 4ac75fd Prefer CMAKE_MAKE_PROGRAM over CMAKE_BUILD_TOOL (#14548) ...
| * Tests: Do not use an explicit make program for VS generatorsBrad King2013-11-181-1/+5
| | | | | | | | | | Do not pass the CMAKE_MAKE_PROGRAM cache entry to tests when using the VS generators. Allow them to pick the correct build tool automatically.
| * Tests: Fix MFC test heuristic for empty CMAKE_TEST_MAKEPROGRAMBrad King2013-11-181-1/+1
| | | | | | | | Also disable the MFC test if CMAKE_MAKE_PROGRAM is vcexpress.
| * Tests: Pass CMAKE_MAKE_PROGRAM instead of --build-makeprogramBrad King2013-11-186-9/+9
| | | | | | | | | | | | | | | | | | | | Pass the CMAKE_TEST_MAKEPROGRAM, if any, to each test at CMake time in the CMAKE_MAKE_PROGRAM cache entry. Pass the CMAKE_TEST_MAKEPROGRAM into the ExportImport, Fortran, and MacRuntimePath tests so that they may do the same for the nested project configurations. Now "ctest --build-and-test" can get the make program from the test build tree cache, so drop the explicit --build-makeprogram.
| * Tests: Configure SubProject-Stage2 test more robustlyBrad King2013-11-181-13/+12
| | | | | | | | | | | | | | | | | | | | | | Fix the condition that adds the test to check CMAKE_TEST_GENERATOR rather than the tools used to build CMake. Drop the test on Ninja because the generator does not support subproject generation anyway. Stop using the general build_generator_args and pass the --build-generator options explicitly. Also pass --build-makeprogram explicitly when CMAKE_TEST_MAKEPROGRAM is available because there is no CMakeCache.txt in the test project subdirectory from which to pick up the make program.
| * Tests: Simplify VSExcludeFromDefaultBuild configurationBrad King2013-11-181-2/+9
| | | | | | | | | | | | | | | | | | | | | | Create a CTEST_TEST_DEVENV variable that is set to the CMAKE_MAKE_PROGRAM used for Visual Studio 7, 8, and 9. It will always be either "devenv" or "VCExpress", and not "MSBuild". Add the VSExcludeFromDefaultBuild test only when this variable is set, and use its value as the --build-makeprogram value. More work will be needed later to restore the test on VS 10 and above when devenv is available, but this is the simplest approach for now.
| * Tests: Simplify VSProjectInSubdir configurationBrad King2013-11-181-25/+11
| | | | | | | | | | | | | | | | The test is only enabled on VS 10 and above, where the generators now select for "ctest --build-and-test" the MSBuild tool by default. Simplify the test configuration by dropping the --build-makeprogram option and all the logic needed to compute its value. The test will automatically use MSBuild.
| * Tests: Simplify CTest.BuildCommand.ProjectInSubdir configurationBrad King2013-11-182-7/+8
| | | | | | | | | | Collect all ctest_configure options in a list to configure it into the test script. Drop the unused -DCMAKE_MAKE_PROGRAM argument to ctest.
| * Tests: Pass --build-options to every testBrad King2013-11-181-27/+98
| | | | | | | | | | Create a "build_options" variable whose value is passed to every "ctest --build-and-test" call through the --build-options argument.
| * Prefer CMAKE_MAKE_PROGRAM over CMAKE_BUILD_TOOL (#14548)Brad King2013-11-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Historically these were both added for the Makefile and Visual Studio generators, respectively. Later the VS generators started using the CMAKE_MAKE_PROGRAM cache entry to find the IDE build tool, and the CMAKE_BUILD_TOOL was simply set as an alias. Fix the documentation to explain that CMAKE_MAKE_PROGRAM is the modern variable and that CMAKE_BUILD_TOOL is the compatibility alias, not the other way around. Replace uses of CMAKE_BUILD_TOOL with CMAKE_MAKE_PROGRAM in CMake-provided modules. Nothing needs to lookup CMAKE_BUILD_TOOL in the cache, so simply set it as a normal variable.
| * Tests: Split <test>_EXTRA_OPTIONS into <test>_(CTEST|BUILD)_OPTIONSBrad King2013-11-181-10/+12
| | | | | | | | | | | | Some extra options are for "ctest --build-and-test" directly, and others are values for "--build-options". Split these two roles out into two separate variables and update existing uses.
| * Tests: Simplify ExternalProjectUpdate test argumentsBrad King2013-11-181-1/+0
| | | | | | | | | | Drop the -DCMAKE_TEST_MAKEPROGRAM argument because the value is not used inside the test script.
| * Tests: Fix make capability selection for empty CMAKE_TEST_MAKEPROGRAMBrad King2013-11-181-3/+3
| |
| * Tests: Teach MakeClean to use "cmake --build"Brad King2013-11-181-9/+2
| | | | | | | | | | Switch from "ctest --build-and-test" to "cmake --build" to drive the clean target in the MakeClean test.
| * Tests: Teach SimpleInstall to use "cmake --build"Brad King2013-11-182-28/+22
| | | | | | | | | | Switch from "ctest --build-and-test" to "cmake --build" to drive the install and package targets in the SimpleInstall test.
| * Tests: Launch CMake.Install test through 'cmake --build'Brad King2013-11-181-18/+4
| | | | | | | | | | | | Use "cmake --build" to drive the "install" target from the CMake build tree itself. This avoids using the heavier "ctest --build-and-test" just to run the native build tool to drive installation.
| * Tests: Launch BootstrapTest through cmake instead of ctestBrad King2013-11-182-10/+16
| | | | | | | | | | | | Run the bootstrap script through "cmake -P" instead of "ctest --build-and-test" so that we do not need to abuse the --build-makeprogram option of the latter.
| * Tests: Move CMAKE_TEST_MAKEPROGRAM into Tests/CMakeLists.txtBrad King2013-11-181-0/+4
| | | | | | | | | | Also drop the temporary MAKEPROGRAM variable and the DART_ROOT special case. We never run dashboard clients with Dart anymore.
| * Tests: Drop remnants of unused ShellInstall testBrad King2013-11-182-76/+0
| | | | | | | | The ShellInstall test has long been replaced by the CMake.Install test.
| * build_command: Return a "cmake --build" command-lineBrad King2013-11-154-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-implement the build_command() command to use "cmake --build" instead of generating a native build tool invocation directly. This command will internally invoke the proper native build tool. This avoids requiring cmGlobalGenerator::GenerateBuildCommand to produce a string so that it can be later refactored to produce a vector with no quoting or escaping. It will also allow us to later teach CMake to delay the decision about which build tool to invoke until after the project build system is generated to disk. For example, on Visual Studio 10 and above the preferred command-line tool is MSBuild, but we need to fall back to devenv if the .sln has Intel Fortran .vfproj files.
* | CMP0037: Extend policy to reserved names and custom targetsNils Gladitz2013-11-1916-40/+161
|/ | | | | | | | Teach add_custom_target to check the policy too. Extend the policy to disallow reserved target names that we use for builtin targets like "all". Extend the RunCMake.CMP0037 test to cover these cases.
* Merge topic 'set_emptyvar_PARENT_SCOPE'Brad King2013-11-145-0/+41
|\ | | | | | | | | | | | | bf755c7 set: Add unit tests for set/unset PARENT_SCOPE bc280f1 set: Fix handling of empty value with PARENT_SCOPE 20afbd5 set: Handle value-less PARENT_SCOPE explicitly
| * set: Add unit tests for set/unset PARENT_SCOPEDaniele E. Domenichelli2013-11-135-0/+41
| | | | | | | | | | Create a RunCMake.set test to cover set() command cases, starting with PARENT_SCOPE.
* | Merge topic 'configure_file-drop-IMMEDIATE'Brad King2013-11-149-16/+16
|\ \ | | | | | | | | | | | | 15610bb Drop use of configure_file IMMEDIATE option
| * | Drop use of configure_file IMMEDIATE optionDaniele E. Domenichelli2013-11-139-16/+16
| |/ | | | | | | | | | | Since commit 7d47c693 (Drop compatibility with CMake < 2.4, 2013-10-08) we no longer need to use the configure_file IMMEDIATE option to support compatibility modes less than 2.0.
* | ExternalData: Allow local stores without any URL templatesBrad King2013-11-138-1/+49
| | | | | | | | | | | | | | | | | | Allow ExternalData_URL_TEMPLATES to be empty if a value for ExternalData_OBJECT_STORES is provided. Assume in this use case that the object stores will already contain all needed objects. Extend the Module.ExternalData test to cover this case (all objects in stores). Extend the RunCMake.ExternalData test to cover the non-failure message case when stores are provided without URL templates.
* | Merge topic 'cmake-copyright-year'Brad King2013-11-132-0/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 3bade75 Help: Parse Copyright.txt instead of using current year 2bbf6bd Copyright.txt: Add test to check year range 3ee67d0 Copyright.txt: Update year range to end in 2013 621ba1f cmake-gui: Parse Copyright.txt instead of duplicating notice 993b685 bootstrap: Parse Copyright.txt instead of duplicating notice
| * | Copyright.txt: Add test to check year rangeBrad King2013-11-122-0/+25
| |/ | | | | | | | | | | Add a CMake.Copyright test that, when the CMake version number knows the year (as it does in development versions), checks that Copyright.txt has been updated with the current version year.
* | Merge topic 'policy-summary-periods'Brad King2013-11-132-2/+2
|\ \ | | | | | | | | | | | | | | | 49cbca6 CMP0038: Add missing '.' to policy summary line 7390002 CMP0039: Add missing '.' to policy summary line
| * | CMP0039: Add missing '.' to policy summary lineDaniele E. Domenichelli2013-11-122-2/+2
| | |
* | | Merge topic 'fix-INTERFACE-with-no-SHARED-libs'Brad King2013-11-133-0/+7
|\ \ \ | |_|/ |/| | | | | | | | 64f73b0 add_library: Fix INTERFACE on platforms with no shared libs (#14561)
| * | add_library: Fix INTERFACE on platforms with no shared libs (#14561)Stephen Kelly2013-11-123-0/+7
| |/
* | Merge topic 'test-RunCMake.CMP0037-everywhere'Brad King2013-11-1219-92/+99
|\ \ | |/ |/| | | | | 8c6c1f1 Enable RunCMake.CMP0037 test everywhere
| * Enable RunCMake.CMP0037 test everywhereBrad King2013-11-1119-92/+99
| | | | | | | | | | | | | | | | | | | | | | Split the test cases covering spaces and colons into separate units. Run the space cases everywhere. Disable the colon cases where they are known to fail. This approach increases platform coverage for the test and makes the known-failure logic as local as possible. No Makefile generator on Windows can generate targets with ':' in their name because the CMakeFiles/<target>.dir directory cannot be created. Skip this part of the test on all Windows Make tools.
* | Merge topic 'test-LINK_ONLY-expression'Brad King2013-11-084-5/+17
|\ \ | | | | | | | | | | | | 53b10fd Genex: Add a test for the LINK_ONLY expression.
| * | Genex: Add a test for the LINK_ONLY expression.Stephen Kelly2013-11-064-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 239b0c6b (Don't add invalid content to static lib INTERFACE_LINK_LIBRARIES., 2013-10-20) extended a test which excercised the logic of the LINK_ONLY generator expression. Commit ef10b87c (CMP0022: Plain target_link_libraries must populate link interface, 2013-11-02) removed the instance of LINK_ONLY which was excercised by that test. Add a new test which excercises the other instance of LINK_ONLY by setting the CMP0022 policy to NEW and consuming the contents of the INTERFACE_LINK_LIBRARIES target property.
* | | Merge topic 'tll-target-policies'Brad King2013-11-0836-0/+216
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 596b2a8 Disallow linking to utility targets (#13902). 301bb5c Disallow link-to-self (#13947). 05f5fde Disallow invalid target names (#13140)
| * | Disallow linking to utility targets (#13902).Stephen Kelly2013-11-0712-0/+51
| | |
| * | Disallow link-to-self (#13947).Stephen Kelly2013-11-0713-0/+44
| | |
| * | Disallow invalid target names (#13140)Stephen Kelly2013-11-0713-0/+121
| |/ | | | | | | | | Exclude Borland and NMake from the CMP0037 test. They do not accept the colon in a target name.
* | CFBundle test: Add isysroot argument when calling Rez.Clinton Stimpson2013-11-061-1/+7
|/
* Merge topic 'fix-automoc-compile-definitions'Brad King2013-11-051-1/+4
|\ | | | | | | | | a1b9465 Automoc: Add directory-level COMPILE_DEFINITIONS to command line (#14535)
| * Automoc: Add directory-level COMPILE_DEFINITIONS to command line (#14535)Stephen Kelly2013-11-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 18412153 (Refactor cmTarget::GetCompileDefinitions..., 2013-06-06) cmQtAutomoc was refactored to get all compile definitions from the target instead of separately asking the target and querying the directory-level COMPILE_DEFINITIONS property value. While the generation process does integrate directory-level COMPILE_DEFINITIONS into the target definitions, this did not happen until after Automoc targets are constructed. Therefore the commit regressed use of directory-level definitions in Automoc targets. Factor the definition finalization logic out from the cmGlobalGenerator::CreateGeneratorTargets method into a new cmGlobalGenerator::FinalizeTargetCompileDefinitions method and call it before constructing Automoc targets. This will place the directory-level definitions into the target in time to use them for the Automoc targets. Extend the QtAutomoc test to cover this case.
* | Merge topic 'test-Assembler-no-g'Brad King2013-11-051-0/+3
|\ \ | | | | | | | | | | | | f60797f Tests/Assembler: Drop -g when generating sample assembly source
| * | Tests/Assembler: Drop -g when generating sample assembly sourceBrad King2013-11-011-0/+3
| | | | | | | | | | | | | | | | | | Some compilers, such as Clang on OS X, do not want the -g flag for both generating assembly code and assembling it. Drop the -g flag from generation of main.s in the Assembler test.
* | | Merge topic 'policy-CMP0022-fixes-for-master'Brad King2013-11-0419-12/+106
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b51696f CMP0022: Update target_link_libraries plain signature documentation 25b7f87 Merge branch 'policy-CMP0022-fixes' into policy-CMP0022-fixes-for-master 0a561a0 CMP0022: Warn about a given target at most once 23d21b7 Do not export INTERFACE_LINK_LIBRARIES from non-linkable targets ef10b87 CMP0022: Plain target_link_libraries must populate link interface 0e06788 CMP0022: Add test for target_link_libraries plain signature c0f4a61 CMP0022: Add unit test for null pointer check and message. 4b0cfa7 Merge branch 'output-CMP0022-entries' into policy-CMP0022-fixes