summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'test-ExternalProject-CONFIGURE_HANDLED_BY_BUILD' into release-3.20Brad King2021-02-231-2/+2
|\ | | | | | | | | | | | | 74fe16a292 Tests: Fix ExternalProject CONFIGURE_HANDLED_BY_BUILD on 1s filesystems Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5838
| * Tests: Fix ExternalProject CONFIGURE_HANDLED_BY_BUILD on 1s filesystemsDaan De Meyer2021-02-221-2/+2
| | | | | | | | | | | | | | | | | | Following commit 7155e358c9 (ExternalProject: Add CONFIGURE_HANDLED_BY_BUILD option, 2020-12-16, v3.20.0-rc1~168^2), modify the CONFIGURE_HANDLED_BY_BUILD test to sleep 1.125 seconds to make sure the file timestamp is always updated regardless of the resolution of the underlying filesystem. Fixes: #21830
* | Tests: Suppress failures on macOS arm64 due to separate Xcode signing phaseBrad King2021-02-226-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some tests fail because Xcode runs `POST_BUILD` commands before signing the binaries they run. Tell the linker to perform ad-hoc codesign even though Xcode normally tells it not to. Other tests fail because `install_name_tool` does not revise ad-hoc signatures without the codesign `linker-signed` flag. Add that flag ourselves where needed by our tests. For now these changes help our test suite pass so we can use it to cover everything else. Both of these cases may need further investigation to update CMake to help projects in general. Issue: #21845, #21854
* | Tests: Clarify internal project name in RunCMake.GoogleTest casesBrad King2021-02-224-4/+4
| |
* | Merge topic 'fix-IS_NEWER_THAN-usage' into release-3.20Brad King2021-02-225-0/+85
|\ \ | | | | | | | | | | | | | | | | | | | | | b0da671243 FetchContent: Don't update timestamps if files don't change 404cddb7bb ExternalProject: Fix misuse of IS_NEWER_THAN in timestamp checks Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5825
| * | FetchContent: Don't update timestamps if files don't changeCraig Scott2021-02-225-0/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The refactoring in 17e5516e60 (FetchContent: Invoke steps directly and avoid a separate sub-build, 2021-01-29) uses a different way of writing out the step scripts and updating time stamps when steps are executed. That inadvertently always wrote out the scripts for custom commands, even when the contents didn't change. This caused their timestamp to always be updated, resulting in those steps always being seen as out-of-date and needing to be re-executed. The way timestamps were checked to determine whether to re-execute a step also did not adequately account for file systems which only have second-resolution timestamps. The IS_NEWER_THAN if condition also returns true when timestamps are the same, so one needs to use the negative form to get a true "is newer than" test. ExternalProject is not susceptible to this problem because it uses file(GENERATE) to write out the script files and that only updates the file's timestamp if the contents change. It also mostly leaves timestamp checking to the build tool.
* | | VS: Restore support for PCH in CXX but not C within once targetBrad King2021-02-195-0/+33
|/ / | | | | | | | | | | | | | | Fix logic from commit 9df1f33c9a (VisualStudio: move PCH rules to projects when possible., 2020-10-15, v3.20.0-rc1~638^2) to explicitly disable PCH on sources that should not use the target-wide PCH rules. Fixes: #21827
* | FetchContent: Restore patch command supportCraig Scott2021-02-173-0/+25
|/ | | | | | The refactoring in 17e5516e60 (FetchContent: Invoke steps directly and avoid a separate sub-build, 2021-01-29) contained a typo which resulted in any PATCH_COMMAND being ignored. Fix the typo and add a test case that would have caught the regression.
* Merge topic 'xcode12-ios_install_combined'Brad King2021-02-093-4/+29
|\ | | | | | | | | | | | | 0110aa018d IOS_INSTALL_COMBINED: Support Xcode 12 (command line only) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5785
| * IOS_INSTALL_COMBINED: Support Xcode 12 (command line only)Craig Scott2021-02-083-4/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xcode 12 doesn't allow nested builds within the same build directory. That means we can no longer do an install by building the install target when IOS_INSTALL_COMBINED is true. We can, however, still do an install by running the cmake_install.cmake script or executing cmake --install, since there is no outer build and therefore the associated SDK can be built as a sub-build. The non-build methods previously didn't work when IOS_INSTALL_COMBINED was true because the generated install script and the CMakeIOSInstallCombined script both made certain assumptions that relied on being part of a build. Those assumptions are now removed. A side-effect of this work is that cpack now also works from the command line when IOS_INSTALL_COMBINED is true. Relates: #21282 Fixes: #20023
* | Merge topic 'object-lib-multiarch'Brad King2021-02-0911-12/+56
|\ \ | | | | | | | | | | | | | | | | | | | | | 4d46b1401f add_library(): Allow imported object libraries with multi-arch 1a915e8953 Tests: TargetObjects does not need any languages enabled Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5771
| * | add_library(): Allow imported object libraries with multi-archCraig Scott2021-02-069-7/+55
| | | | | | | | | Fixes: #21276
| * | Tests: TargetObjects does not need any languages enabledCraig Scott2021-02-052-5/+1
| | |
* | | Merge topic 'cmake_library_architecture_better_multiarch_support'Brad King2021-02-0824-1/+51
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 657fc3a9a7 CMakeDetermineCompilerABI: Parse library arch from versioned paths Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5773
| * | | CMakeDetermineCompilerABI: Parse library arch from versioned pathsRobert Maynard2021-02-0424-1/+51
| |/ / | | | | | | | | | | | | | | | Teach CMake how to extract `CMAKE_<LANG>_LIBRARY_ARCHITECTURE` from versioned paths such as `/usr/lib/gcc/x86_64-linux-gnu/9`. These kind of paths are generated by NVHPC compilers.
* | | Merge topic 'fetchcontent-performance'Brad King2021-02-0515-68/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 17e5516e60 FetchContent: Invoke steps directly and avoid a separate sub-build 4f3d1abbb4 ExternalProject: Refactor pre-configure steps to support no-target uses 23aab9ecce ExternalProject: Avoid scanning docs for keywords, use include_guard() Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Robert Maynard <robertjmaynard@gmail.com> Acked-by: Michael Hirsch, Ph.D. <michael@scivision.dev> Acked-by: Lars Melchior <lars.melchior@gmail.com> Merge-request: !5749
| * | | FetchContent: Invoke steps directly and avoid a separate sub-buildCraig Scott2021-02-042-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cost of setting up and executing a separate sub-build to do the download, update and patch steps required for FetchContent population can be significant with some platforms and CMake generators. Avoid the sub-build altogether by invoking the step scripts directly. Previously, if no generator was set (e.g. population was being done in script mode), a generator needed to be available on the default PATH. Since we no longer use a sub-build, this restriction is also now gone. Fixes: #21703
| * | | ExternalProject: Refactor pre-configure steps to support no-target usesCraig Scott2021-02-046-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mkdir, download, update and patch steps are used by FetchContent during the configure phase of the main build. Because these steps need a target, this has so far required a sub-build to be set up. The changes here factor out the preparation of the scripts from the creation of the targets, allowing future work to leverage these steps without a sub-build (see #21703). As part of the refactoring, some rationalisation of the stamp files, repository info files and script names was done to make things more consistent between download methods and step implementations. Every download method now records its own specific repository info in a file and that file is a dependency of the download step. The source directory is also written to that file, so if the SOURCE_DIR changes, the download will be retriggered (the existing implementation fails in this scenario). Each download method now also has just one driver script that implements the whole step (it may pull in other scripts to do its task though). The patch step gained support for USES_TERMINAL as a result of generalising the implementation for custom commands. Fixes: #21748
| * | | ExternalProject: Avoid scanning docs for keywords, use include_guard()Craig Scott2021-01-297-43/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation was scanning the documentation in the file at runtime to determine the set of supported keywords for each public function. This was fragile, made it difficult to restructure the documentation and was sometimes observable in runtime performance measurements. Change to a more conventional approach where supported keywords are explicitly listed in the code. The internal _ExternalProject_SELF variable is no longer needed. CMake now provides CMAKE_CURRENT_FUNCTION_LIST_DIR which can be used for the same purpose and avoids having to set a variable when the module is read. This also removes the requirement that the module must be included by the current or a parent scope. It is now enough that the module has been included once somewhere before calling any of its functions. The above changes combined mean that the module can now use include_guard() and avoid having to re-parse the very long file every time.
* | | | Merge topic 'build-test-presets'Brad King2021-02-0581-30/+800
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9b5289ebd8 Help: Add release note for build and test presets c8a5cd6871 Tests: Update RunCMake/CMakePresets --list-presets 69a5cf23a2 Tests: Update RunCMake/CommandLine BuildDir b500935b94 Tests: Add test preset tests 74a86566f0 Tests: Add build preset tests 56751c83aa Tests: Factor out RunCMake.CMakePresets schema validation 676ecf0d37 cmake-presets: Add build and test presets 4f4f2028b8 Help: Add documentation for buildPresets and testPresets ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5681
| * | | | Tests: Update RunCMake/CMakePresets --list-presetsSam Freed2021-02-044-4/+4
| | | | |
| * | | | Tests: Update RunCMake/CommandLine BuildDirSam Freed2021-02-0411-11/+11
| | | | |
| * | | | Tests: Add test preset testsSam Freed2021-02-0436-0/+464
| | | | |
| * | | | Tests: Add build preset testsSam Freed2021-02-0429-0/+301
| | | | |
| * | | | Tests: Factor out RunCMake.CMakePresets schema validationSam Freed2021-02-042-15/+20
| | | | | | | | | | | | | | | | | | | | | | | | | Make it available to similar tests. Also fix whitespace in generated error message.
* | | | | Merge topic 'aix-xcoff-edit'Brad King2021-02-0413-4/+100
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e017ba046c AIX: Enable XCOFF editing to replace RPATH on installation 56fc4a325f cmXCOFF: Add helper to parse and edit the XCOFF binary format ddaaee907d CMakeDetermineCompilerId: Recognize XCOFF executable format 69e1d95a8a Tests: Add sample XCOFF binaries f79d991dfd Tests: Convert CMake.ELF to RunCMake.file-RPATH ELF case d8f3e68ca9 Ninja Multi-Config: Enable relink diagnostic message cdcfe3eb99 Rename CMAKE_USE_MACH_PARSER to CMake_USE_MACH_PARSER b6071c93f5 Rename CMAKE_USE_ELF_PARSER to CMake_USE_ELF_PARSER Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5769
| * | | | | AIX: Enable XCOFF editing to replace RPATH on installationBrad King2021-02-035-6/+21
| | | | | | | | | | | | | | | | | | | | | | | | Avoid relinking before installation.
| * | | | | Tests: Add sample XCOFF binariesBrad King2021-02-032-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generate the binaries as follows: $ cat main.c int main(void) { return 0; } $ xlc -q64 -o xcoff64.bin -Wl,-blibpath:/sample/rpath:/usr/lib:/lib main.c $ strip -X 64 xcoff64.bin $ xlc -q32 -o xcoff32.bin -Wl,-blibpath:/sample/rpath:/usr/lib:/lib main.c $ strip -X 32 xcoff32.bin
| * | | | | Tests: Convert CMake.ELF to RunCMake.file-RPATH ELF caseBrad King2021-02-038-0/+81
| | |_|/ / | |/| | |
* | | | | Merge topic 'issue-17634'Brad King2021-02-042-0/+11
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | 5af38a11ce try_run: Allow to set working directory Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5757
| * | | | try_run: Allow to set working directoryAsit Dhal2021-02-032-0/+11
| | | | | | | | | | | | | | | | | | | | Fixes: #17634
* | | | | Merge topic 'pch-reuse-from-obj-msvc'Brad King2021-02-032-0/+132
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c450d66daa PCH: Remove restrictions for REUSE_FROM signature for MSVC Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5765
| * | | | | PCH: Remove restrictions for REUSE_FROM signature for MSVCCristian Adam2021-02-022-0/+132
| |/ / / / | | | | | | | | | | | | | | | Fixes: #20201
| * | | | Revert "PCH: Remove restrictions for REUSE_FROM signature for MSVC"Brad King2021-02-022-132/+0
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9f060971411aca979807f70307d8b9fe1b43ff24. It was merged accidentally.
| * | | | Merge topic 'pch-reuse-from-obj-msvc'Brad King2021-02-022-0/+132
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9f06097141 PCH: Remove restrictions for REUSE_FROM signature for MSVC Acked-by: Kitware Robot <kwrobot@kitware.com> Rejected-by: Cristian Adam <cristian.adam@gmail.com> Acked-by: Cristian Adam <cristian.adam@gmail.com> Merge-request: !5728
| | * | | | PCH: Remove restrictions for REUSE_FROM signature for MSVCCristian Adam2021-02-022-0/+132
| | |/ / / | | | | | | | | | | | | | | | Fixes: #20201
* | | | | file(CONFIGURE): Use text mode for default OUTPUT contentCristian Adam2021-02-021-1/+5
|/ / / / | | | | | | | | | | | | | | | | | | | | This affects only Windows where \n will be translated as \r\n Fixes: #21769
* | | | Merge topic 'issue-19198'Brad King2021-02-0211-0/+141
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 255df8622b file(GENERATE): Support new line style Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Brad King <brad.king@kitware.com> Merge-request: !5649
| * | | | file(GENERATE): Support new line styleAsit Dhal2021-02-0111-0/+141
| | | | | | | | | | | | | | | | | | | | Fixes: #19198
* | | | | Merge topic 'fix21727_for_FindOpenSSL'Brad King2021-02-026-0/+86
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bc00cf9300 FindOpenSSL: Add support for version-range Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5750
| * | | | | FindOpenSSL: Add support for version-rangeDeniz Bahadir2021-02-016-0/+86
| |/ / / /
* | | | | Merge topic 'tests-setgid'Brad King2021-02-021-0/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8213390a3e Added `SETUID` and `SETGID` to the list of accepted file permissions f41d0e0c77 Tests: Explicitly set permissions in CPack tests to avoid perimssions errors Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5754
| * | | | | Tests: Explicitly set permissions in CPack tests to avoid perimssions errorswilliam.r.dieter2021-01-291-0/+6
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the user has the setgid bit is set on the parent directory of the build directory, the setgid bit will be propagated throughout the build tree. Most tests do not care about permissions as long as they can read and write the files the need. The CPack tests, however, validate that permissions match an expected set, and fail with the setgid bit set. Explicitly set permissions on directories created in the CPackTestHelpers to clear the setgid bit. Signed-off-by: william.r.dieter <william.r.dieter@intel.com>
* | | | | Merge topic 'bad-dns-no_proxy'Brad King2021-02-021-0/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c0b1f5f30c Tests: Add host to ENV{no_proxy} when DNS lookup failure is expected Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5752
| * | | | | Tests: Add host to ENV{no_proxy} when DNS lookup failure is expectedwilliam.r.dieter2021-01-291-0/+4
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DNS lookup of an invalid host name fails with a different error in a proxy environment than it does in an environment without proxy. Many tools, including curl, use the `no_proxy` environment variable to provid a list of hosts for which proxy should not be used. To make lookup failure consistent, add invalid host names to the `no_proxy` environment variable in tests that attempt to look up invalid host names. This way the lookup will fail consistently regardless of whether proxy is generally used or not. Signed-off-by: william.r.dieter <william.r.dieter@intel.com>
* | | | | Merge topic 'file-configure-newline'Brad King2021-02-011-1/+6
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | 6e225efd8c file(CONFIGURE): Fix newlines in CONTENT Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5747
| * | | | file(CONFIGURE): Fix newlines in CONTENTCristian Adam2021-01-291-1/+6
| | | | | | | | | | | | | | | | | | | | Fixes: #21749
* | | | | Merge topic 'cmake_path-stabilization'Craig Scott2021-01-2911-24/+24
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | 76cea3dfe2 cmake_path: rename 'GET ... RELATIVE_PATH' to 'GET ... RELATIVE_PART' Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5743
| * | | | cmake_path: rename 'GET ... RELATIVE_PATH' to 'GET ... RELATIVE_PART'Marc Chevrier2021-01-2811-24/+24
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | For consistency, subcommand 'HAS_RELATIVE_PATH' is also renamed to 'HAS_RELATIVE_PART'. Fixes: #21385
* | | | Merge topic 'externalproject-update-refactor'Brad King2021-01-293-0/+91
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ac6a4d4884 ExternalProject: Improve robustness of update step 17c4c8b92b Tests: Prevent the noisy CMP0114 warnings in ExternalProjectUpdate test 1cb65e680d ExternalProject: Prevent the noisy detached head messages on checkout Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5389