summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'cxxmodules-cmp0155-graceful-fallback-without-scanner' into ↵Brad King2023-11-015-13/+14
|\ | | | | | | | | | | | | | | | | | | | | release-3.28 1f507580a1 cmGlobalGenerator: give context about module queries 889aa0354a CMP0155: ignore scanning for sources if no scanner is available Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8925
| * CMP0155: ignore scanning for sources if no scanner is availableBen Boeckel2023-11-015-13/+14
| | | | | | | | | | | | | | | | | | | | This allows for a more graceful transition for projects using C++20 without scanner support (e.g., Clang 15 or GCC 13). While newer compilers will (needlessly) scan, it allows C++20-using projects to use older compilers without having to set `CMAKE_CXX_SCAN_FOR_MODULES` to support newer CMake minimum versions. Fixes: #25357
* | Merge topic 'modules-depends-via-target-objects' into release-3.28Brad King2023-10-318-1/+68
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 22da18b995 Fortran: Restore support for TARGET_OBJECTS providing modules 64d9240564 cmComputeLinkInformation: skip over linking to items for object purposes 035302b7e3 cmComputeLinkDepends: also copy the target from object link items 861876b936 Tests/ObjectLibrary: fix comment Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !8923
| * | Fortran: Restore support for TARGET_OBJECTS providing modulesBen Boeckel2023-10-307-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continue b665966933 (cmComputeLinkInformation: track OBJECT library dependencies, 2023-07-22) which added explicitly listed `OBJECT` libraries to the list of targets which the collator needs to consider. Now also consider targets which provide objects directly to the target via a `$<TARGET_OBJECT>` source lists. Also add tests which use target objects directly and through an `INTERFACE` library with target objects in its own sources. Fixes: #25365
| * | Tests/ObjectLibrary: fix commentBen Boeckel2023-10-271-1/+1
| | |
* | | Merge topic 'cxxmodules-ninja-forced-rsp-files' into release-3.28Brad King2023-10-303-0/+51
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 09c962a6a4 Tests/CXXModules: test forced rsp files with ninja Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8926
| * | | Tests/CXXModules: test forced rsp files with ninjaBen Boeckel2023-10-283-0/+51
| | |/ | |/| | | | | | | Fixes: #25367
* | | CMP0153: Add suggestion to use execute_process()Kyle Edwards2023-10-272-1/+4
|/ /
* | cmNinjaTargetGenerator: do not order-depend on C++ module sourcesBen Boeckel2023-10-206-1/+72
| | | | | | | | | | | | | | | | | | C++ module sources should not be included by any other TUs, so their presence cannot matter for order-only dependencies of the entire target. Exclude them. Update CMP0154 to take this into consideration and add tests to the `CXXModules` suite (which already deals with module support detection).
* | Merge topic 'cxxmodules-vs-no-synthetic-targets' into release-3.28Brad King2023-10-186-1/+47
|\ \ | | | | | | | | | | | | | | | | | | | | | 17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8895
| * | Tests/CXXModules: test Visual Studio synthetic target errorBen Boeckel2023-10-176-1/+47
| | |
* | | Merge topic 'cxxmodules-export-fileset-info' into release-3.28Brad King2023-10-176-4/+29
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0f36156740 cxxmodules: include `INCLUDES DESTINATION` directories Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8886
| * | | cxxmodules: include `INCLUDES DESTINATION` directoriesBen Boeckel2023-10-166-4/+29
| |/ / | | | | | | | | | | | | | | | | | | These paths are added outside the normal property management mechanisms. Shuttle the value to the C++ module export as needed. Fixes: #25289
* | | Merge topic 'execute_process-output_file-directory' into release-3.28Brad King2023-10-176-0/+22
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8883
| * | | execute_process(): Restore opening files relative to WORKING_DIRECTORYKyle Edwards2023-10-166-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to 5420639a, execute_process() would open INPUT_FILE, OUTPUT_FILE, and ERROR_FILE relative to the WORKING_DIRECTORY argument if it was provided. Restore this behavior for backwards compatibility. Fixes: #25338
* | | | Tests/NinjaPrivateDeps: fix error message for Build-PrivateFileSet-checkBen Boeckel2023-10-161-1/+1
| |/ / |/| | | | | | | | The file *should* exist, so word the error message as such.
* | | Autogen: Revert "AUTO*_EXECUTABLE: add support for per-config values"Orkun Tokdemir2023-10-1312-418/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changing the `timestamp` file to `timestamp_$<CONFIG>` causes some user projects to break when using Qt versions older than 6.6. Revert commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for per-config values, 2023-06-14, v3.28.0-rc1~96^2~1) pending further investigation. Issue: #20074
* | | Tests: Revert "NinjaMultiConfig: Update tests for the new dependency change"Orkun Tokdemir2023-10-133-40/+22
|/ / | | | | | | | | | | Revert commit e454314daa (NinjaMultiConfig: Update tests for the new dependency change, 2023-07-05, v3.28.0-rc1~96^2) because we are about to revert the change for which it updated tests.
* | Merge topic 'cxxmodules-try_compile' into release-3.28Brad King2023-10-113-0/+26
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !8865
| * | cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compileBrad King2023-10-103-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under CMP0155's NEW behavior, projects that explicitly enable C++20 support with `set(CMAKE_CXX_STANDARD 20)` may also explicitly disable scanning with `set(CMAKE_CXX_SCAN_FOR_MODULES OFF)`. We already propagate `CMAKE_CXX_STANDARD` into `try_compile` test projects, so propagate `CMAKE_CXX_SCAN_FOR_MODULES` too. Fixes: #25313
* | | cxxmodules: Reference documentation in no-modules-support diagnosticsBrad King2023-10-116-24/+34
| | | | | | | | | | | | | | | | | | Help users avoid errors about module support when they may not need it. While at it, polish sentence syntax in the diagnostic messages.
* | | Tests: Enforce RunCMake.CXXModules no-modules-support diagnostics strictlyBrad King2023-10-116-36/+26
|/ / | | | | | | | | Previously the expected output expressions used `(...)*` which did not actually have to match anything.
* | Tests/RunCMake/CXXModules: remove experimental settingsBen Boeckel2023-10-072-4/+0
| | | | | | | | | | Logical conflicts between the topic that introduced the tests and the removal of the experimental flag completely.
* | cxxmodules: Scan only targets that explicitly enable C++ 20Brad King2023-10-053-0/+18
| | | | | | | | | | | | Previously we scanned any targets for which C++ 20 is enabled, even if enabled only by the compiler's default, such as when `CXXFLAGS=-std=c++20`.
* | Tests: Modernize name of RunCMake.CXXModules compiler inspection caseBrad King2023-10-042-2/+2
| | | | | | | | We use the case name `Inspect` for similar purposes in other tests.
* | Merge topic 'LLVMFlang-MSVC' into release-3.28Brad King2023-10-0417-3/+151
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 26bf32cdc6 LLVMFlang: Add support for targeting MSVC ABI on Windows e9af7b9687 LLVMFlang: Add support for CMAKE_Fortran_COMPILER_TARGET 26fa048ffe Tests: Enable CMP0091/CMP0141 for MSVC settings in FortranOnly test 9d060b8682 Fortran: Save CMAKE_LINKER variable persistently for MSVC ABI 7571e653f4 CMakeDetermineCompilerABI: Add option to skip implicit link info parsing 12733d0d8d CMakeParseImplicitLinkInfo: Detect link lines using link.exe and lld-link Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8852
| * | LLVMFlang: Add support for targeting MSVC ABI on WindowsBrad King2023-10-033-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler does not yet support everything needed to integrate well with the MSVC ABI, in particular for runtime library selection and debug format selection. Document them in FIXME comments and leave this support undocumented by CMake for now. Fixes: #24840 Inspired-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
| * | Tests: Enable CMP0091/CMP0141 for MSVC settings in FortranOnly testBrad King2023-10-021-1/+1
| | |
| * | CMakeParseImplicitLinkInfo: Detect link lines using link.exe and lld-linkBrad King2023-10-0213-0/+134
| | | | | | | | | | | | | | | | | | These are printed by LLVM-based compiler drivers targeting the MSVC ABI. In our use case for this, `CMAKE_LINKER` may not yet be known, so do not include it in the test data.
* | | Merge topic 'cmDebugTools-add-header'Brad King2023-10-032-0/+34
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | b0612796b1 cmDebugTools: add header Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8849
| * | | cmDebugTools: add headerBen Boeckel2023-10-012-0/+34
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This provides a utility macro which prints out: - location of the call; - the expression being evaluated; and - the value of the expression. Evaluates to the value of the expression. Inspired by Rust's `dbg!` macro. See: https://doc.rust-lang.org/stable/std/macro.dbg.html
* | | Merge topic 'cxxmodules-no-longer-experimental'Brad King2023-10-02127-460/+244
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 437280b127 cxxmodules: scan C++ sources for imports by default 3cddd11649 Ninja: message about not compiled sources explicitly 068fde1c34 cmGeneratorTarget: use `this->` for method calls 197a6bf171 cxxmodules: rework control logic for scanning regular C++ sources 5eb7bd641a Tests/RunCMake/CXXModules: remove rules file requirement ff18acc301 CXXModules: remove `EXPERIMENTAL` from C++ module variable names 0c07f39006 cmExperimental: remove the flag for C++ modules 68caec9137 Help: add a manpage for cxxmodule support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com> Merge-request: !8828
| * | | cxxmodules: scan C++ sources for imports by defaultBen Boeckel2023-10-0244-38/+72
| | | | | | | | | | | | | | | | | | | | Existing projects are not using C++ modules in their sources, so introduce policy CMP0155 to enable scanning by default.
| * | | cxxmodules: rework control logic for scanning regular C++ sourcesBen Boeckel2023-10-0210-23/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that scanning support is no longer experimental, the logic for whether or not to scan C++ 20 sources is now important because all projects are now exposted to the logic. Make the scanning rules explicit in the documentation and rework the queries to localize all of the associated logic. A policy to handle the ultimate fallback logic will be implemented in a following commit.
| * | | Tests/RunCMake/CXXModules: remove rules file requirementBen Boeckel2023-10-021-12/+2
| | | | | | | | | | | | | | | | | | | | Only Clang needs to disable extensions in order to work; other implementations work as-is.
| * | | CXXModules: remove `EXPERIMENTAL` from C++ module variable namesBen Boeckel2023-10-0211-12/+12
| | | |
| * | | cmExperimental: remove the flag for C++ modulesBen Boeckel2023-10-0279-379/+104
| |/ / | | | | | | | | | | | | | | | | | | All the major compilers now have scheduled releases with support for scanning, so remove the experimental gate. Fixes: #18355
* | | Merge topic 'ctest-timeout-flag'Brad King2023-10-023-2/+15
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | d267c128a2 ctest: Restore support for --timeout values higher than default test timeout dd779a4bc2 Tests: Clarify RunCMake.CTestTimeout case name Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8851
| * | ctest: Restore support for --timeout values higher than default test timeoutBrad King2023-09-292-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since refactoring in commit 0a5aeaf302 (cmCTestRunTest: Consolidate test timeout selection logic, 2023-05-04, v3.27.0-rc1~120^2) we accidentally truncate `--timeout` values to ctest's default `TimeOut`. Fix the logic to prefer the flag whenever the `TIMEOUT` property is not set. In combination with the prior refactoring, this also fixes a bug that caused `--timeout` values of 10000000 seconds or more to be ignored. Fixes: #23979
| * | Tests: Clarify RunCMake.CTestTimeout case nameBrad King2023-09-292-2/+2
| | |
* | | Merge topic 'FindCUDAToolkit-implicit-dirs'Brad King2023-09-292-4/+20
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 4316d4dcfd FindCUDAToolkit: Search all of `nvcc` implicit includes and library dirs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8835
| * | | FindCUDAToolkit: Search all of `nvcc` implicit includes and library dirsRobert Maynard2023-09-272-4/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improves the handling of CUDA layouts where we have multiple include and library directories listed in the output of `nvcc -v`. This updates both when the CUDA language is enabled or not. Fixes: #24915
* | | | Merge topic 'help-arbitrary'Brad King2023-09-292-0/+9
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | 4e50320978 Help: Allow help for arbitrary keywords Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8674
| * | | Help: Allow help for arbitrary keywordsMartin Duffy2023-09-272-0/+9
| | | | | | | | | | | | | | | | | | | | Changes `cmake --help [arg]` to search `Help/*/` instead of `Help/command/` Allows editors to easily display manual for `<cword>`
* | | | Merge topic 'cxxmodules-export-dirs-with-prefix'Brad King2023-09-2768-77/+369
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 42654cc818 Tests/CXXModules: add tests for modules with include requirements 7217cb78cf Tests/CXXModules: relax line number matching in stderr b3d1bbbbcc cmExportFileGenerator: relocate include directories for C++ modules 349ff8b080 cmGeneratorTarget: remove not-INTERFACE assertion 681a763425 cmGeneratorTarget: use a character literal Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8838
| * | | | Tests/CXXModules: add tests for modules with include requirementsBen Boeckel2023-09-2623-0/+292
| | | | |
| * | | | Tests/CXXModules: relax line number matching in stderrBen Boeckel2023-09-2645-77/+77
| | | | |
* | | | | Merge topic 'misc-cxxmodule-fixes'Brad King2023-09-2711-47/+102
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3b632f32fa Tests/CXXModules: forward the default build type 5ab6b09691 Tests/CXXModules: fix multi-config and MSVC details 11b62ef118 Tests/CXXModules: add missing `bmi-only` and compiler id fields 5d9631fbdd Tests/CXXModules: fix key set mismatch error messages 86e7fb72cb Tests/CXXModules: use a less generic name for the config 6b940dc590 Tests/CXXModules: replace the object extension as well 1c9f83c8ec Tests/CXXModules: fix error detection propagation 7a4c02cb38 cmGlobalGenerator: factor out messaging for CMP0037 ... Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com> Merge-request: !8834
| * | | | | Tests/CXXModules: forward the default build typeBen Boeckel2023-09-264-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows defaults the build type to `Debug` while other platforms have an empty string.
| * | | | | Tests/CXXModules: fix multi-config and MSVC detailsBen Boeckel2023-09-256-25/+25
| | | | | |