summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* execute_process(): Restore opening files relative to WORKING_DIRECTORYKyle Edwards2023-10-161-18/+44
| | | | | | | | 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
* CMake 3.28.0-rc1v3.28.0-rc1Brad King2023-10-111-1/+1
|
* Merge topic 'cxxmodules-try_compile' into release-3.28Brad King2023-10-111-0/+2
|\ | | | | | | | | | | | | | | | | 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-101-0/+2
| | | | | | | | | | | | | | | | | | | | 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-111-9/+11
|/ | | | | | Help users avoid errors about module support when they may not need it. While at it, polish sentence syntax in the diagnostic messages.
* cxxmodules: Scan only targets that explicitly enable C++ 20Brad King2023-10-051-7/+5
| | | | | | 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`.
* cmGeneratorTarget: Track explicitly enabled language standard levelsBrad King2023-10-052-1/+47
| | | | | Previously we only tracked when an explicit setting requires the standard level to be higher than the compiler's default.
* cmGeneratorTarget: Remove outdated const/mutable pairBrad King2023-10-042-7/+6
|
* cmStandardLevelResolver: Add method to look up standard level by nameBrad King2023-10-042-0/+26
|
* cmStandardLevelResolver: Report feature std level from GetNewRequiredStandardBrad King2023-10-043-13/+17
| | | | | Regardless of whether the feature requires a new (higher) standard level, always report the standard level that the feature needs.
* cmStandardLevelResolver: Add method to get feature standard levelBrad King2023-10-042-3/+20
|
* cmStandardLevelResolver: Factor out public representation of levelBrad King2023-10-043-17/+37
|
* cmStandardLevelResolver: Clarify local variable nameBrad King2023-10-041-2/+2
|
* cmStandardLevelResolver: Mark builtin language standards table as constBrad King2023-10-041-31/+27
|
* cxxmodules: Fix CMP0155 NEW behavior when C++ compile features are not knownBrad King2023-10-031-11/+18
| | | | | | | | | | | | | | | | | With CMP0155 NEW behavior, we scan C++ sources in targets using C++ 20, i.e., in which the `cxx_std_20` feature is available. However, our check for C++ feature availability may incorrectly succeed in two cases: * MSVC versions from VS 2013 do not model C++ standard levels, so we assume all features are available as a heuristic to let projects at least try compiling with them. * During ABI detection the `CMAKE_CXX20_COMPILE_FEATURES` variable is not populated so we assume all features are available, knowing that our ABI detection project does not need them. For purposes of detecting targets using C++ 20, we do not want to assume `cxx_std_20` is available, so verify that we really know it is.
* Begin 3.28 release versioningBrad King2023-10-031-3/+3
|
* Merge topic 'cmDebugTools-add-header'Brad King2023-10-031-0/+23
|\ | | | | | | | | | | | | | | 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-011-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | CMake Nightly Date StampKitware Robot2023-10-031-1/+1
| |
* | Merge topic 'cxxmodules-no-longer-experimental'Brad King2023-10-0214-166/+184
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-023-2/+29
| | | | | | | | | | | | | | | Existing projects are not using C++ modules in their sources, so introduce policy CMP0155 to enable scanning by default.
| * | Ninja: message about not compiled sources explicitlyBen Boeckel2023-10-021-0/+24
| | | | | | | | | | | | | | | | | | With CMP0155, filesets with only non-compiled sources do not go through the collation path that detects it. Detect it explicitly like the Visual Studio generator does.
| * | cmGeneratorTarget: use `this->` for method callsBen Boeckel2023-10-021-2/+2
| | |
| * | cxxmodules: rework control logic for scanning regular C++ sourcesBen Boeckel2023-10-025-64/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | CXXModules: remove `EXPERIMENTAL` from C++ module variable namesBen Boeckel2023-10-021-10/+10
| | |
| * | cmExperimental: remove the flag for C++ modulesBen Boeckel2023-10-028-90/+30
| | | | | | | | | | | | | | | | | | | | | 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-021-5/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-291-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | CMake Nightly Date StampKitware Robot2023-10-021-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2023-10-011-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2023-09-301-1/+1
| | | |
* | | | Merge topic 'help-arbitrary'Brad King2023-09-292-12/+77
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-12/+77
| | | | | | | | | | | | | | | | | | | | | | | | | Changes `cmake --help [arg]` to search `Help/*/` instead of `Help/command/` Allows editors to easily display manual for `<cword>`
* | | | | CMake Nightly Date StampKitware Robot2023-09-291-1/+1
| |_|_|/ |/| | |
* | | | CMake Nightly Date StampKitware Robot2023-09-281-1/+1
| |_|/ |/| |
* | | Merge topic 'cxxmodules-export-dirs-with-prefix'Brad King2023-09-272-10/+26
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | cmExportFileGenerator: relocate include directories for C++ modulesBen Boeckel2023-09-261-8/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Include directories are paths that need munged on install to support the installation prefix. Fixes: #25275
| * | | cmGeneratorTarget: remove not-INTERFACE assertionBen Boeckel2023-09-261-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | IMPORTED INTERFACE targets which provide C++ modules may have include directories that need checked for whether they are system directories or not. These directories are intended for the module compilation themselves (which may include headers that module consumers do not need).
| * | | cmGeneratorTarget: use a character literalBen Boeckel2023-09-261-1/+1
| | | |
* | | | Merge topic 'misc-cxxmodule-fixes'Brad King2023-09-272-21/+21
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | cmGlobalGenerator: factor out messaging for CMP0037Ben Boeckel2023-09-251-9/+14
| | | | | | | | | | | | | | | | | | | | Also make some strings into character literals.
| * | | | cmGlobalGenerator: use static string views for reserved targetsBen Boeckel2023-09-251-4/+5
| | | | | | | | | | | | | | | | | | | | Also make the array static.
| * | | | cmGeneratorTarget: use `GetSupportDirectory` in PCH codepathsBen Boeckel2023-09-251-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Instead of recalculating the support directory path, use the intended method.
* | | | | Merge topic 'autogen-timestamp-per-config'Brad King2023-09-272-3/+17
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bac468ddfd AutoGen: Fix regression in timestamps on multi-config generators c3f0825d3c Tests/RunCMake/Autogen: Factor out test setup 9654835b4f Tests/RunCMake/Autogen: Add expect_n_times() function Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8840
| * | | | | AutoGen: Fix regression in timestamps on multi-config generatorsOrkun Tokdemir2023-09-262-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for per-config values, 2023-06-14) we do not correctly generate outputs for one configuration after another configuration has been built. Fix this: - Revert some config based stuff for `Xcode` due to the `$<CONFIG>` genex usage limitation in source files with `Xcode`. - For multi-config generators use a per-config `timestamp_$<CONFIG>` file instead of one `timestamp` file. Fixes: #25261
* | | | | | CMake Nightly Date StampKitware Robot2023-09-271-1/+1
|/ / / / /
* | | | | Merge topic 'cuda_handle_target_objects_in_device_link'Brad King2023-09-262-22/+41
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cd984261e1 CUDA: Device linking now uses TARGET_OBJECTS content aa8facefe8 CUDA: Visual Studio propagate objects to device linking Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8829
| * | | | | CUDA: Device linking now uses TARGET_OBJECTS contentRobert Maynard2023-09-251-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to an oversight in cmLinkLineDeviceComputer object files did not get propagate to the device linking phase when given via the `$<TARGET_OBJECTS>` generator expression.
| * | | | | CUDA: Visual Studio propagate objects to device linkingRobert Maynard2023-09-221-14/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When given objects via `target_link_libraries(consumer PRIVATE producer)` the VisualStudio solution adds the objects under as `<Object>` entries in the solution. This works for host side linking but isn't handled by the cuda msbuild extensions. So to work around this we manually add the objects as additional link items.
* | | | | | Merge topic 'hip-nvidia'Brad King2023-09-261-4/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fd982eec10 HIP: Add tests for special NVIDIA values of CMAKE_HIP_ARCHITECTURES 8c8b3f1bfa HIP: Fix support for -DCMAKE_HIP_ARCHITECTURES=native with NVCC b3e92775ab HIP: Add CMAKE_HIP_HOST_COMPILER when compiler is NVCC e43918b4ca HIP: Fix linking mixed-lang binary with CXX compiler and Makefile generators 4794505122 HIP: Do not require hip-lang package for NVIDIA platform 09d759dc7f HIP: Simplify exclusion of AMD device runtime with NVIDIA GPUs 2a60663670 HIP: Simplify CMAKE_GENERATOR references for determining compiler 8124950f6c CUDA: Generalize CMAKE_{CUDA => <LANG>}_HOST_COMPILER variable docs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8836