summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'swift-always-restat'Brad King2024-01-053-2/+10
|\ | | | | | | | | | | | | 1161ad76ac Swift/Ninja: Always restat swift build commands Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9076
| * Swift/Ninja: Always restat swift build commandsJeremy Day2024-01-043-2/+10
| | | | | | | | | | | | | | | | | | The swift toolchain leaves output files untouched if there are no meaningful input changes; without restat, this causes ninja to needlessly rebuild targets that are not actually out-of-date Fixes: #25496
* | Merge topic 'swift-compile-commands'Brad King2024-01-053-0/+44
|\ \ | | | | | | | | | | | | | | | | | | | | | 44f29a4291 Swift/Ninja: Fix multifile module compile commands Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9095
| * | Swift/Ninja: Fix multifile module compile commandsEvan Wilde2024-01-033-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | Swift compile commands need to have all source files in the module specified in the compile command or LSP systems will report errors on missing types that are defined in other source files in the same module. Issue: #25491
* | | Merge topic 'test-RunCMake.ExternalProject'Brad King2024-01-051-0/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 3253bc306e Tests: Optionally run RunCMake.ExternalProject serially Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9129
| * | | Tests: Optionally run RunCMake.ExternalProject seriallyBrad King2024-01-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | On some machines running many tests concurrently, the `INACTIVITY_TIMEOUT` cases do not always complete within their individual timeout. Add an undocumented cache entry to use on those machines to run the test serially.
* | | | Merge topic 'check_language_propagate_hip_platform'Brad King2024-01-053-0/+38
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | ce9c6d0994 HIP: Propagate CMAKE_HIP_PLATFORM from/to the test project in check_language 9ba3fc91e5 HIP: Really forward CMAKE_HIP_HOST_COMPILER in check_language(HIP) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9121
| * | | HIP: Propagate CMAKE_HIP_PLATFORM from/to the test project in check_languageGergely Meszaros2024-01-043-0/+38
| | | | | | | | | | | | | | | | Fixes: #25541
* | | | Merge topic 'compute-compiler-linker'Brad King2024-01-04180-71/+1740
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 459d1cc095 Tests: Verify that linker tool is detected and identified where expected 6aec4739c1 LinkerId: Record detection steps to configure log ba5f8dbba3 LinkerId: Use empty string for unknown linker id 6cbd0658c5 LinkerId: Match Apple linker on all Apple platforms 9324668517 LinkerId: Fix detection of GNU linker id without parenthesis in version output 37bc148870 LinkerId: Fix detection of linker tool without path 6e527c2d38 LinkerId: Fix detection of linker tool for Clang on OpenBSD 455aed3061 LinkerId: Fix detection of linker tool for MSVC ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9086
| * | | Tests: Verify that linker tool is detected and identified where expectedBrad King2024-01-032-2/+36
| | | |
| * | | LinkerId: Match Apple linker on all Apple platformsBrad King2024-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | `cmake_determine_linker_id` is only used for macOS because Apple device platforms set `_CMAKE_FEATURE_DETECTION_TARGET_TYPE` to `STATIC_LIBRARY`, but we might as well prepare for them anyway.
| * | | LinkerId: Fix detection of GNU linker id without parenthesis in version outputBrad King2024-01-033-0/+6
| | | |
| * | | LinkerId: Fix detection of linker tool without pathBrad King2024-01-0313-13/+13
| | | | | | | | | | | | | | | | | | | | Some compiler drivers invoke the linker tool as just `ld`, with no path, expecting it to be in the `PATH`.
| * | | LinkerId: Fix detection of linker tool for Clang on OpenBSDBrad King2024-01-032-2/+2
| | | | | | | | | | | | | | | | Do not match quotes as part of the path.
| * | | LinkerId: Fix detection of linker tool for MSVCBrad King2024-01-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Previously we matched an entire build system output line and then extracted the relevant portion in a separate brittle step. Match it directly. Use the `CMAKE_LINKER` value directly if available.
| * | | LinkerId: Fix detection of linker tool for GNU on SunOS sparc32Brad King2024-01-034-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | We do not use `-Wl,-v` on SunOS because not all GNU deployments use the `collect2` helper, and those that do do not always print the underlying `ld` command line. Parse the `--with-ld=` option as a fallback.
| * | | LinkerId: Fix detection of linker tool for XL compilersBrad King2024-01-0312-12/+12
| | | | | | | | | | | | | | | | | | | | These compilers print an explicit `export XL_LINKER=` line. Parse it separately.
| * | | LinkerId: Fix detection of linker tool for XL as nvcc host compilerBrad King2024-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When IBM XL is used as the host compiler for nvcc, it generates a comma-separated link line. Parse the `exec:` line syntax separately, as was done in commit b5f20da94d (CMakeParseImplicitLinkInfo supports comma separated link lines, 2019-08-23, v3.16.0-rc1~181^2).
| * | | Tests: Cover detection of linker tool for Intel on WindowsBrad King2024-01-0313-0/+138
| | | |
| * | | Tests: Cover detection of linker tool for MSVCBrad King2024-01-039-0/+148
| | | | | | | | | | | | | | | | Cover both Ninja and Visual Studio generators.
| * | | Tests: Cover detection of linker tool while parsing implicit link infoBrad King2024-01-0394-2/+110
| | | | | | | | | | | | | | | | | | | | There are a few cases where content besides the path is picked up. Match them for now. We will fix them in following commits.
| * | | Tests: Update sample data for parsing implicit link/include informationBrad King2024-01-0354-1/+1148
| | | | | | | | | | | | | | | | | | | | | | | | Since commit c26c6ac488 (Link Step: compute effective linker used by the compiler, 2023-05-27) we use `CMAKE_${lang}_VERBOSE_LINK_FLAG` when detecting implicit link information. Generate sample test data with it.
| * | | Tests: Improve isolation of cases parsing implicit link/include informationBrad King2024-01-032-69/+51
| | | |
| * | | Tests: Add unit tests for internal cmake_determine_linker_id helperBrad King2024-01-0327-0/+106
| | |/ | |/|
* | | Tests: Quote possibly empty string(REPLACE) argumentCraig Scott2024-01-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The ${unity_source_line} variable should not normally be empty, but it has been observed that it sometimes is due to other factors. Rather than causing string(REPLACE) to fail due to the wrong number of arguments, quote the variable so that the UnityBuildPre2017 test case fails with a more appropriate error in the block just after the usage fixed by this change.
* | | Merge topic 'Ninja-LINK_OPTIONS-with-newlines'Marc Chevrier2023-12-232-0/+9
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | 255c2e1430 Ninja: LINK_OPTIONS property should support newlines Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9096
| * | Ninja: LINK_OPTIONS property should support newlinesMarc Chevrier2023-12-202-0/+9
| | | | | | | | | | | | Fixes: #25513
* | | Merge topic 'package-dispatch-apple'Brad King2023-12-2019-2/+59
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4ac5a2f866 CMakePackageConfigHelpers: Add generate_apple_architecture_selection_file() b9f81ee9f9 CMakePackageConfigHelpers: Remove outdated documentation summary paragraph 68a03cf3d4 generate_apple_platform_selection_file: Add INSTALL_PREFIX option ff21f0f70f Tests: Verify generate_apple_platform_selection_file file paths Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9092
| * | | CMakePackageConfigHelpers: Add generate_apple_architecture_selection_file()Brad King2023-12-1910-2/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a helper to select architecture-specific implementations of a package on an Apple-specific platform. Fixes: #25516
| * | | generate_apple_platform_selection_file: Add INSTALL_PREFIX optionBrad King2023-12-191-0/+1
| | | | | | | | | | | | | | | | This is necessary to forward to `configure_package_config_file`.
| * | | Tests: Verify generate_apple_platform_selection_file file pathsBrad King2023-12-1910-0/+12
| | | |
* | | | Merge topic 'add_test-CROSSCOMPILING_EMULATOR-exclusive'Brad King2023-12-205-0/+108
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ca5a300d7f add_test: Honor CROSSCOMPILING_EMULATOR only when cross-compiling Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8947
| * | | | add_test: Honor CROSSCOMPILING_EMULATOR only when cross-compilingRalf Habacker2023-12-195-0/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add policy CMP0158 to provide compatibility for existing projects. Fixes: #23672
* | | | | Merge topic 'swift-CMP0157-old'Brad King2023-12-202-3/+12
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | d31b48816c Swift/Ninja: Fix missing OFM in CMP0157 OLD behavior Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9089
| * | | | Swift/Ninja: Fix missing OFM in CMP0157 OLD behaviorEvan Wilde2023-12-192-3/+12
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CMP0157 old behavior omitted the output-file-map after the Swift build split because we stopped calling `EmitSwiftDependencyInfo` when we could not split the build because we didn't call `WriteObjectBuildStatement`. If we can't split the build, then we still need to include the OFM information to not break incremental builds.
* | | | Merge topic 'gtest_discover_tests_error_message'Brad King2023-12-192-0/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2ea216a6bb GoogleTest: Add working directory to gtest_discover_tests error message Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9083
| * | | | GoogleTest: Add working directory to gtest_discover_tests error messageAlexander Krabler2023-12-182-0/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the working directory didn't exist, the old message just says: Error running test executable. Path: '<Path to test executable>' Result: No such file or directory Output: This leads the user to the conclusion that the test executable doesn't exist, which isn't true. Make the true cause visible by reporting the working directory in the error message.
* | | | Merge topic 'package-dispatch-apple'Brad King2023-12-194-0/+15
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc5098429b CMakePackageConfigHelpers: Clarify Apple platform selection usage error 3b9586671c CMakePackageConfigHelpers: Clarify Apple platform selection template name Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9087
| * | | | CMakePackageConfigHelpers: Clarify Apple platform selection usage errorBrad King2023-12-184-0/+15
| | |_|/ | |/| | | | | | | | | | `generate_apple_platform_selection_file` requires `INSTALL_DESTINATION`.
* | | | Merge topic 'Xcode-Check-Imported-Framework'Brad King2023-12-192-0/+28
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| | | | | | | | | | defbfd6f55 Xcode: Restore support for standalone IMPORTED_LOCATION_<CONFIG> Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9082
| * | Xcode: Restore support for standalone IMPORTED_LOCATION_<CONFIG>Marc Chevrier2023-12-182-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 878ae03832 (macOS: IMPORTED framework: Honor SYSTEM target property in all cases, 2023-08-27, v3.28.0-rc1~162^2) we broke support for `IMPORTED_LOCATION_<CONFIG>` without `IMPORTED_CONFIGURATIONS`. Previously it worked if the importing project's configurations match the set of `IMPORTED_LOCATION_<CONFIG>` properties set. Fix that case. Fixes: #25506 Issue: #25515
* | | Merge topic 'package-dispatch-apple'Brad King2023-12-1827-0/+180
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1dd4a9baff Tests: Cover generate_apple_platform_selection_file on all platforms 3148db4533 CMakePackageConfigHelpers: Fix Apple platform selection for tvOS Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9077
| * | | Tests: Cover generate_apple_platform_selection_file on all platformsBrad King2023-12-1627-0/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test added by commit 37bc3400cd (CMakePackageConfigHelpers: Add generate_apple_platform_selection_file(), 2023-11-03) covers importing only on macOS, and is specific to the xcframework test case. Add a dedicated test for `generate_apple_platform_selection_file` that covers export and import on all platforms.
* | | | Merge topic 'fc-provider-find-package-args'Craig Scott2023-12-173-0/+19
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | 0415304970 FetchContent: Fix FIND_PACKAGE_ARGS not being passed to dep providers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9080
| * | | FetchContent: Fix FIND_PACKAGE_ARGS not being passed to dep providersCraig Scott2023-12-163-0/+19
| |/ / | | | | | | | | | Fixes: #25504
* | | Merge topic 'swift-split-compilation-model'Brad King2023-12-163-11/+19
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | 9bed4f4d81 Swift/Ninja: Split compilation model 64b3367845 cmGlobalGenerator: Allow passing language to GetLangaugeOutputExtension Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8907
| * | Swift/Ninja: Split compilation modelEvan Wilde2023-12-153-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Splitting the Swift build into an object build and a separate link step, instead of building and linking in one step. The immediate benefit is LSP support because we are able to emit compile-commands for Swift files now. Additionally, it is possible to specify flags to the compile step, enabling folks to emit C and C++ headers from their Swift builds for C/C++ interop, without needing custom commands. Eventually, this gives us a path toward working object libraries. Object Libraries: - Object libraries don't work today because CMake doesn't emit targets for object libraries into the Ninja build file. - tl;dr: Object libraries work if they aren't WMO. Still need work to make WMO'd object libraries work. Object libraries still don't completely work with this patch because, while we emit the targets, the `TARGET_OBJECTS` generator expression expansion has a separate mechanism for determining what the names of the objects are based on the input source files, so targets that depend on an object library built with a whole-module optimization will depend on objects based on the name of the source file instead of the actual emitted object file. These features require being able to accurately model wholemodule builds though, because we actually need to track object files and WMO affects what objects are emitted. For that, we require CMP0157 use the NEW policy. When it's OLD, we have to fall back on the old behavior and cannot provide object libraries or the compile-commands for LSP. Issue: #25308
* | | Merge topic 'cmake-test-launcher'Brad King2023-12-1520-8/+374
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 88863d83d6 fileapi: Add test launcher to codemodel-v2 1ec0372ed4 add_test: Optionally use a launcher for tests running in-project targets 478a5f4e04 fileapi: Make launcher attribute 'arguments' optional b44e38a397 cmFileAPICodemodel: Add missing std::move() Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8963
| * | | fileapi: Add test launcher to codemodel-v2Ralf Habacker2023-12-1311-1/+245
| | | | | | | | | | | | | | | | | | | | We do not need to bump the minor version because it was recently bumped by addition of the cross-compiling emulator as another kind of launcher.
| * | | add_test: Optionally use a launcher for tests running in-project targetsRalf Habacker2023-12-138-0/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a `CMAKE_TEST_LAUNCHER` variable and corresponding `TEST_LAUNCHER` target property. Issue: #23672