Commit Graph

69427 Commits

Author SHA1 Message Date
Brad King e07effe49c Help: Fix wording in tutorial workflow description 2025-04-25 11:10:10 -04:00
Brad King f4d41e7166 Merge branch 'release-3.31' into release-4.0 2025-04-24 07:46:01 -04:00
Brad King b729a9d319 Merge topic 'automoc-predefs' into release-4.0
ccef69bde4 AUTOMOC: Avoid compiler warnings while computing predefines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10702
2025-04-24 07:45:19 -04:00
Brad King 1e6356e67f Merge topic 'cuda_tests_no_hardcoded_sm_values' into release-4.0
83a0c72a2d ci: Tell CudaOnly.CompileFlags test what specific architecture to use

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10701
2025-04-24 07:43:46 -04:00
Brad King ee2463e8c5 Merge topic 'automoc-predefs' into release-3.31
ccef69bde4 AUTOMOC: Avoid compiler warnings while computing predefines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10702
2025-04-24 07:12:14 -04:00
Brad King 2e72a6af2d Merge topic 'cuda_tests_no_hardcoded_sm_values' into release-3.31
83a0c72a2d ci: Tell CudaOnly.CompileFlags test what specific architecture to use

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10701
2025-04-24 07:11:28 -04:00
Brad King ccef69bde4 AUTOMOC: Avoid compiler warnings while computing predefines
LLVM/Clang 20, when invoked as `clang++ -E -c ...`, now warns:

    warning: argument unused during compilation: '-c'

Drop the unnecessary `-c` flag.  Also add a `-w` flag to suppress
warnings so their text is not parsed as predefines.
2025-04-24 07:07:00 -04:00
Robert Maynard 83a0c72a2d ci: Tell CudaOnly.CompileFlags test what specific architecture to use
CUDA 12.8 deprecates architectures below 75.  Presumably a future
version will remove it.  Prepare infrastructure to avoid relying on
hard-coded arch 50 in this test.

This extends commit 63a5460faf (ci: Tell CudaOnly.Architecture test what
specific architecture to use, 2025-04-21).
2025-04-23 09:28:13 -04:00
Brad King 7280dc5e02 Merge branch 'release-3.31' into release-4.0 2025-04-23 08:57:43 -04:00
Brad King 8dee757664 Merge topic 'clang-cuda-default-arch' into release-4.0
47ddbc9ded CUDA/Clang: Prefer NVCC's default architecture for each CUDA Toolkit version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !10698
2025-04-23 08:57:06 -04:00
Brad King 26fd56549a Merge topic 'clang-cuda-default-arch' into release-3.31
47ddbc9ded CUDA/Clang: Prefer NVCC's default architecture for each CUDA Toolkit version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10698
2025-04-23 08:56:24 -04:00
Brad King 7d36c4e960 Merge topic 'test-ctest-regression' into release-4.0
6bc5b467a9 Tests: Fix RunCMake.CTestCommandLine under ctest -T Coverage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10699
2025-04-23 08:43:04 -04:00
Brad King 6bc5b467a9 Tests: Fix RunCMake.CTestCommandLine under ctest -T Coverage
Update commit 712cb8cb14 (ctest: Restore support for -T Test without
dashboard configuration, 2025-03-06, v4.0.0-rc4~11^2) to avoid
conflating coverage of CMake itself with the coverage mode of ctest
being tested.
2025-04-22 11:25:24 -04:00
Brad King 47ddbc9ded CUDA/Clang: Prefer NVCC's default architecture for each CUDA Toolkit version
This makes the default CUDA architecture consistent across compilers,
and makes it more likely that the resulting binary will run on the
user's hardware.

This also makes hardware requirements for CI builds more consistent.
See commit 4f2178c4a8 (ci: add tags to tie CUDA jobs to runners with
hardware supporting them, 2025-04-21).
2025-04-22 09:51:02 -04:00
Brad King f9ee88c3f5 Merge branch 'release-3.31' into release-4.0 2025-04-22 09:32:37 -04:00
Brad King 680cd7634b Merge topic 'ci-cuda' into release-4.0
dfe3b98387 Merge branch 'backport-ci-cuda' into ci-cuda
72e7636540 ci: add tags to tie CUDA jobs to runners with hardware supporting them
1395c1e19a ci: Tell CudaOnly.Architecture test what specific architecture to use
4f2178c4a8 ci: add tags to tie CUDA jobs to runners with hardware supporting them
63a5460faf ci: Tell CudaOnly.Architecture test what specific architecture to use

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10691
2025-04-22 09:22:19 -04:00
Brad King ff52aa5b40 Merge topic 'backport-ci-cuda' into release-3.31
4f2178c4a8 ci: add tags to tie CUDA jobs to runners with hardware supporting them
63a5460faf ci: Tell CudaOnly.Architecture test what specific architecture to use

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10691
2025-04-22 09:19:47 -04:00
Brad King 02a1929772 Merge topic 'fix-footnote-css' into release-4.0
097d8fa7a5 Help: Fix overlapping text in footnotes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10690
2025-04-22 09:18:05 -04:00
Brad King 49ca63f3b1 Merge topic 'clang-msvc-c++26' into release-4.0
338f88a809 Clang: MSVC C++26 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10685
2025-04-22 09:17:11 -04:00
Brad King 34c2e75e01 Merge topic 'FindPython-SABI_LIBRARY-definition' into release-4.0
554ef95470 FindPython: fix the definition of SABI artifacts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10687
2025-04-22 09:15:35 -04:00
Brad King dfe3b98387 Merge branch 'backport-ci-cuda' into ci-cuda 2025-04-21 18:26:43 -04:00
Brad King 72e7636540 ci: add tags to tie CUDA jobs to runners with hardware supporting them
CUDA 12.8 deprecated support for compute architectures below 75.
Presumably support will be removed from a future version of the
CUDA Toolkit.  Jobs using such a future version of CUDA will not
be able to compile support for CUDA architectures below 75, so
they will not be able to run on older hardware.  In preparation,
our CI runners now have `cuda-arch-#` tags for the architectures
they support.  Jobs may then be tagged with the minimum architecture
on which they can run.

Tag each job with the highest of the following requirements:

* Most of CMake's tests use the CUDA compiler's default architecture,
  which is based on the version the CUDA toolkit.

* For Clang we currently select architecture 52 if supported by the
  CUDA toolkit, even if that toolkit's NVCC defaults to an older arch.

* The `CudaOnly.Architecture` test uses a specific architecture
  configured by each CI job.
2025-04-21 18:25:49 -04:00
Brad King 1395c1e19a ci: Tell CudaOnly.Architecture test what specific architecture to use
CUDA 12.8 deprecates architectures below 75.  Presumably a future
version will remove it.  Prepare infrastructure to avoid relying on
hard-coded arch 52 in this test.
2025-04-21 18:24:41 -04:00
Brad King 4f2178c4a8 ci: add tags to tie CUDA jobs to runners with hardware supporting them
CUDA 12.8 deprecated support for compute architectures below 75.
Presumably support will be removed from a future version of the
CUDA Toolkit.  Jobs using such a future version of CUDA will not
be able to compile support for CUDA architectures below 75, so
they will not be able to run on older hardware.  In preparation,
our CI runners now have `cuda-arch-#` tags for the architectures
they support.  Jobs may then be tagged with the minimum architecture
on which they can run.

Tag each job with the highest of the following requirements:

* Most of CMake's tests use the CUDA compiler's default architecture,
  which is based on the version the CUDA toolkit.

* For Clang we currently select architecture 52 if supported by the
  CUDA toolkit, even if that toolkit's NVCC defaults to an older arch.

* The `CudaOnly.Architecture` test uses a specific architecture
  configured by each CI job.
2025-04-21 18:17:55 -04:00
Brad King 63a5460faf ci: Tell CudaOnly.Architecture test what specific architecture to use
CUDA 12.8 deprecates architectures below 75.  Presumably a future
version will remove it.  Prepare infrastructure to avoid relying on
hard-coded arch 52 in this test.
2025-04-21 18:07:15 -04:00
Matthew Woehlke 097d8fa7a5 Help: Fix overlapping text in footnotes
In commit 038f4c12e3 (Utilities/Sphinx: Add hanging indent to version
notes, 2023-03-14, v3.27.0-rc1~322^2) we tweaked version notes to
improve readability. However, due to the way footnotes work, this
resulted in overlapping text elements when a footnote consists of a
version note. Adjust the styling to correct this issue.
2025-04-21 15:40:08 -04:00
Raul Tambre 338f88a809 Clang: MSVC C++26 support
C++26 is implied by `/std:c++latest` since LLVM 17, commit `b763d6a4ed`.
2025-04-21 12:22:29 -04:00
Marc Chevrier 554ef95470 FindPython: fix the definition of SABI artifacts
Fixes: #26881
2025-04-21 16:14:51 +02:00
Brad King e14d9b0f42 Merge topic 'macos-usr-local-lib' into release-4.0
6e63080d39 macOS: Restore RPATH entry for libraries linked from /usr/local/lib
430174e65d CMakeDetermineCompilerABI: Comment implicit link directory exclusion

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10663
2025-04-16 09:38:27 -04:00
Brad King 699f45ae33 Merge topic 'normalize-input-paths' into release-4.0
cd4e72ca08 Normalize PWD environment variable before using it

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10659
2025-04-16 09:37:07 -04:00
Brad King 6e63080d39 macOS: Restore RPATH entry for libraries linked from /usr/local/lib
Since commit 7b19531291 (macOS: Do not pass any SDK/-isysroot to
compilers by default, 2024-11-06, v4.0.0-rc1~511^2) our default
invocation of compilers targeting macOS no longer passes `-isysroot`.
Without that, Xcode's compilers search `-L/usr/local/lib` by default
even though the macOS dynamic loader does not.  Since `/usr/local/lib`
is not a fully-implemented implicit link directory, exclude it from our
detected `CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES` so that our generators
do not suppress `RPATH` entries for dependencies in that directory.

Fixes: #26867
2025-04-15 14:13:45 -04:00
Brad King 430174e65d CMakeDetermineCompilerABI: Comment implicit link directory exclusion 2025-04-15 14:13:45 -04:00
Brad King cd4e72ca08 Normalize PWD environment variable before using it
In commit 5aed3ee49d (cmSystemTools: Add GetLogicalWorkingDirectory,
2024-10-28, v4.0.0-rc1~528^2~6) we incorrectly trusted `PWD` to be a
normalized path so long as its realpath matches the current working
directory.

Fixes: #26870
2025-04-15 09:37:08 -04:00
Brad King 813f6c263e Merge topic 'LINKER_FLAGS-CMP0181-OLD' into release-4.0
2e9648e0de Ninja generator: restore correct encoding for policy CMP0181=OLD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10645
2025-04-15 09:36:38 -04:00
Marc Chevrier 2e9648e0de Ninja generator: restore correct encoding for policy CMP0181=OLD
Fixes: #26857
2025-04-12 16:37:57 +02:00
Brad King 3edb0b5dbe Merge topic 'doc-path-case-sensitivity' into release-4.0
1fb7067b6e Help: Add 4.0 release note about file path case sensitivity on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10639
2025-04-11 14:37:19 -04:00
Brad King 1fb7067b6e Help: Add 4.0 release note about file path case sensitivity on Windows
Since KWSys commit `4feb470ab` (SystemTools: Remove GetActualCaseForPath
from CollapseFullPath, 2024-10-23), imported by commit ede7f2afa6 (KWSys
2024-10-24 (e1acde2e), 2024-10-24, v4.0.0-rc1~589^2~1^2), the KWSys
`CollapseFullPath` function that we use to normalize source file paths
no longer looks up the on-disk case of file paths.  This change was
intentionally made to reduce unnecessary disk accesses.  The change may
affect Windows-only projects that were never built on a case sensitive
filesystem.  Call out the change in the 4.0 release notes.

Issue: #26854
2025-04-11 10:33:09 -04:00
Brad King ee515b2aa8 CMake 4.0.1 v4.0.1 2025-04-10 10:58:22 -04:00
Brad King a6969916ff Merge topic 'doc-macos-usr-local' into release-4.0
c69add958a Help: Add note about /usr/local/include on macOS without CMAKE_OSX_SYSROOT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10636
2025-04-10 10:54:11 -04:00
Brad King c69add958a Help: Add note about /usr/local/include on macOS without CMAKE_OSX_SYSROOT
Issue: #19180
2025-04-10 10:16:29 -04:00
Brad King f098dc700e Merge branch 'release-3.31' into release-4.0 2025-04-10 09:51:27 -04:00
Brad King 7b16db932a CMake 3.31.7 v3.31.7 2025-04-10 09:13:20 -04:00
Brad King 3c08fa2b0d Merge topic 'FindXCTest-xcode-16' into release-4.0
2e59cee922 FindXCTest: Fix test module generation for Xcode 16
c653c1aa47 FindXCTest: Pass -bundle_loader linker flag for test module more reliably

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10573
2025-04-10 08:27:38 -04:00
Brad King 2e59cee922 FindXCTest: Fix test module generation for Xcode 16
In Xcode 7.3 and above, the `TEST_HOST` setting causes Xcode to
implicitly place the test module inside the executable bundle regardless
of the module's own location settings.  Since commit a364d2513a (Xcode:
Fixup XCTest bundle location for Xcode 7.3, 2016-03-25, v3.5.2~6^2) we
explicitly tell CMake to put the test module in the same location so
that generator expressions used by `xctest_add_test` agree with where
Xcode actually puts it.  In Xcode 16 and above, our explicit location
settings for the test module conflict with Xcode's `TEST_HOST` rules,
causing errors about multiple commands producing the same path.

Fix this by dropping CMake's explicit location for the test module
unless needed to match a project-specified location for the testee.
Instead, teach `xctest_add_test` to express the xctest module location
selected by `TEST_HOST` by using generator expressions referencing the
testee bundle.

Fixes: #26301
Fixes: #26514
2025-04-09 17:06:13 -04:00
Brad King 46a439e1b6 Merge topic 'doc-CMAKE_OSX_SYSROOT' into release-4.0
2164da0ae6 Help: Document CMAKE_OSX_SYSROOT default change in 4.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10623
2025-04-09 09:12:33 -04:00
Brad King c800eeea5a Merge branch 'release-3.31' into release-4.0 2025-04-09 09:09:57 -04:00
Brad King 473e2b5a84 Merge topic 'apple-CoreFoundation-headers' into release-4.0
d736dafa22 Merge branch 'backport-3.31-apple-CoreFoundation-headers'
42390e7aa2 Source: Include specific CoreFoundation headers instead of umbrella header
14ffd1cc4e cmXCodeObject: Drop unused CoreFoundation header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10616
2025-04-09 09:08:36 -04:00
Brad King 24b907a9e2 Merge topic 'backport-3.31-apple-CoreFoundation-headers' into release-3.31
42390e7aa2 Source: Include specific CoreFoundation headers instead of umbrella header
14ffd1cc4e cmXCodeObject: Drop unused CoreFoundation header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10616
2025-04-09 09:07:27 -04:00
Brad King d736dafa22 Merge branch 'backport-3.31-apple-CoreFoundation-headers' 2025-04-08 11:39:10 -04:00
Sergey Fedorov 42390e7aa2 Source: Include specific CoreFoundation headers instead of umbrella header
Some CoreFoundation headers included by the umbrella header, which we do
not need, use syntax that GCC does not support.  Avoid including them.

GCC-Issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115880
2025-04-08 11:38:24 -04:00