Commit Graph

14483 Commits

Author SHA1 Message Date
Brad King d2404872b2 CPack/RPM: Backport "Remove redundant conditions for presence of rpmbuild"
Backport commit ab4e74ad0b (CPack/RPM: Remove redundant conditions for
presence of rpmbuild, 2025-02-28, v4.0.0-rc3~8^2~1) to CMake 3.31.
2025-11-10 11:40:20 -05:00
Karolina Surma 7f628ea04b FindPython: Add support for Python 3.15 2025-10-24 17:42:44 -04:00
Brad King 636d3a7a2f Apple: Backport "Enable linking during iOS toolchain inspection" to 3.31
Backport commit 79a83ddb08 (Apple: Enable linking during
iOS/tvOS/visionOS/watchOS toolchain inspection, 2024-11-14,
v4.0.0-rc1~471^2) to 3.31.

Since commit 11da882a12 (Apple: Introduce separate system name for iOS,
tvOS, and watchOS, 2018-01-15, v3.14.0-rc1~14^2~1) our toolchain
inspection steps, like ABI detection, tell `try_compile` to use a
`STATIC_LIBRARY` instead of an `EXECUTABLE`.  This was needed at the
time to avoid codesign requirements.  However, commit d3a64c4e3f (Xcode:
Explicitly turn off signing in try_compile projects, 2020-07-16,
v3.19.0-rc1~483^2) introduced a more general solution to that problem.
Restore linking during toolchain inspection so that we can detect and
identify the linker.

Suggested-by: Marc Chevrier <marc.chevrier@gmail.com>
Fixes: #26443
2025-10-21 09:22:41 -04:00
Robert Maynard 67c102ef64 Clang/CUDA: Support CUDA Toolkit 13 new include layout
This ensures that clang knows about the two includes that are required for CUDA 13.
2025-08-14 09:55:53 -04:00
Brad King 388971557e Merge topic 'cuda_13_support' into release-3.31
3ff777de12 CUDA: Update CUDA tests to handle CUDA 13 deprecations
bbf732525a CUDA: Add CUDA 13.0 support to 'all' and 'all-major' architecture tables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11015
2025-08-05 09:52:56 -04:00
Brad King 2853f1c3d1 Merge topic 'cuda_ensure_arch_order' into release-3.31
8beb309b79 CUDA: Make sure CUDA architectures are in order

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11014
2025-08-05 09:51:43 -04:00
Brad King 8a6a6e138c Merge topic 'qcc-8-cxx-lang-flag' into release-3.31
166061629a QCC-CXX: use `-x c++` on 8+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10992
2025-08-05 09:49:15 -04:00
Robert Maynard bbf732525a CUDA: Add CUDA 13.0 support to 'all' and 'all-major' architecture tables 2025-08-04 11:22:12 -04:00
Robert Maynard 8beb309b79 CUDA: Make sure CUDA architectures are in order
Make sure we always group major versions together instead
of interleaving 100 and 120 families.
2025-08-04 11:06:45 -04:00
Ben Boeckel 166061629a QCC-CXX: use -x c++ on 8+
The `-lang-c++` flag has been deprecated.
2025-08-01 20:51:22 -04:00
Brad King 41fbc2ce16 CMakeDetermineCompilerABI: Make ABI info string more robust
Backport commit c0224f5aa1 (CMakeDetermineCompilerABI: Make ABI info
string more robust, 2025-03-13, v4.1.0-rc1~499^2~4) to 3.31 and 4.0.
2025-07-28 10:16:02 -04:00
Robert Maynard d2be863b5e CUDA: Add include paths from nvcc SYSTEM_INCLUDES entry
Upcoming versions of nvcc are adding support for `SYSTEM_INCLUDES`
which contain includes that are implicitly used with `-isystem`
instead of `-I`.

Support of this is needed in CMake as some CUDA Toolkit releases will
start to have a different include directory layout and using only the
output from `INCLUDES` will be insufficient to find all headers.
2025-06-05 10:53:12 -04:00
Andrey Alekseenko 33fb4e1a50 CUDA/Clang: Add archs supported by Clang 21 2025-06-02 18:35:13 +02:00
Andrey Alekseenko a6aaabbdff CUDA/Clang: Reorder the logic for setting supported archs 2025-06-02 18:34:26 +02:00
Andrey Alekseenko 695af87c6f CUDA/Clang: Fix list of architectures supported by Clang < 20.1
Clang before 20.1 does not recognize sm_100 and newer.  Revise:

* commit b2251e0deb (CUDA/Clang: Update architectures supported by
                     CUDA 12.8, 2025-02-04, v4.0.2~4^2~1^2)
* commit a1b4c30f24 (CUDA: Add CUDA 12.9 new architectures and family
                     syntax, 2025-04-21, v4.0.2~3^2^2)
2025-06-02 10:32:27 -04:00
Marc Chevrier 41a4a32135 FindPython: Avoid implicit link library on Windows
Starting with version 3.14, on Windows, by specifying macro Py_NO_LINK_LIB,
the python library is no longer implicitly specified at the link step.

Fixes: #26756
2025-05-20 09:16:14 -04:00
Marc Chevrier 811f00f9ad FindPython: rely on ABIFLAGS on Windows for ABI profile
Starting with Python 3.14, the config_var ABIFLAGS is now also available
on Windows.
2025-05-20 09:16:14 -04:00
Brad King 0883fac39a Merge topic 'clang-libstdcpp-3.31' into release-3.31
802f261d62 experimental/CXXModules: recycle the UUID
c88f3ea1e4 Clang/CXXImportStd: support `-stdlib=libstdc++`
ba5c9703b1 Experimental: recycle the `import std` UUID
9cad48c6cb gcc: support `import std`
acbada3df6 Tests/RunCMake: handle C++26 support where needed

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10778
2025-05-14 15:31:47 -04:00
Ben Boeckel c88f3ea1e4 Clang/CXXImportStd: support -stdlib=libstdc++
Fedora 42 ships `clang` with `libstdc++` as the default. Detect and
support `import std;` in this configuration.
2025-05-14 20:15:26 +02:00
Ben Boeckel 9cad48c6cb gcc: support import std
(cherry picked from commit a980dab9b1 (gcc: support `import std`,
2024-11-21))
2025-05-14 20:14:44 +02:00
Robert Maynard b62f3257f2 CUDA/Clang: Update nvcc default architectures with CUDA 13 deprecations
As outlined in the CUDA 12.9 release notes sm_5X, sm_6X, and sm_70
are being removed in CUDA 13:

> Maxwell, Pascal, and Volta architectures are now feature-complete with
> no further enhancements planned. While CUDA Toolkit 12.x series will
> continue to support building applications for these architectures,
> offline compilation and library support will be removed in the next
> major CUDA Toolkit version release.
2025-05-13 09:40:00 -04:00
Brad King 07df1a2a64 Merge topic 'cuda-12.9' into release-3.31
a1b4c30f24 CUDA: Add CUDA 12.9 new architectures and family syntax
b2251e0deb CUDA/Clang: Update architectures supported by CUDA 12.8

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10738
2025-05-03 09:58:35 -04:00
Robert Maynard a1b4c30f24 CUDA: Add CUDA 12.9 new architectures and family syntax 2025-05-02 15:46:49 -04:00
Robert Maynard b2251e0deb CUDA/Clang: Update architectures supported by CUDA 12.8 2025-05-02 15:46:06 -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
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 d5d7175d9c Merge topic 'FindCUDAToolkit-cupti' into release-3.31
cbb8f30ee6 CUDAToolkit: Restore ability to find cupti library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10533
2025-03-27 09:09:47 -04:00
Marcus D. Hanwell cbb8f30ee6 CUDAToolkit: Restore ability to find cupti library
In commit f69b9b7305 (CUDAToolkit: Restore ability to find cupti
headers, 2023-12-08, v3.28.1~8^2) we did not update the CUPTI library
searches to add the extra search path needed for certain install layouts
(only the header search path). Add the additional library search paths.

Fixes: #26770
Issue: #25484
2025-03-26 14:03:34 -04:00
Marc Chevrier d5be7c7f31 Linker: Detect GNU push-state/pop-state flags more robustly
Try actually passing them to the linker to see whether it complains.

Fixes: #26766
2025-03-20 11:00:02 -04:00
Marc Chevrier 7b552b9a64 Linker: Save GNU push-/pop-state detection with compiler inspection results
Previously we saved it in the cache, which:

* Persists even if a new version of CMake changes how the check works.
* Does not propagate to `try_compile` checks.
2025-03-20 11:00:02 -04:00
Marc Chevrier a9b126b0da Linker: Save linker inspection results with compiler inspection results
Reconfigure `CMake<LANG>Compiler.cmake` again after linker information
is detected.
2025-03-20 11:00:02 -04:00
Brad King 52b62cf4e1 Merge topic 'ASM_MARMASM-config' into release-3.31
9b5915c178 MARMASM: Fix loading linker information

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10487
2025-03-18 09:16:34 -04:00
Marc Chevrier 9b5915c178 MARMASM: Fix loading linker information
Fix misspelled `ASM_DIALECT` variable value.
2025-03-17 12:02:38 -04:00
Brad King d54916d03a MSVC: Revert use of temporary -std:c++23preview flag for C++23
Revert commit b3f1c60aff (MSVC: Use -std:c++23preview flag for C++23
when available, 2025-03-12), except for the VS flag table update.
MSVC documentation states that the flag will be removed in the future
when `-std:c++23` is added.  Therefore it is only suitable for manual
specification by end-users.

Issue: #26692
2025-03-14 09:55:18 -04:00
Brad King b3f1c60aff MSVC: Use -std:c++23preview flag for C++23 when available
This was added by VS 17.13.

Fixes: #26692
2025-03-12 14:50:32 -04:00
Brad King 1b4a802413 MSVC: Split C++23 flag selection into dedicated block 2025-03-12 14:50:31 -04:00
Begasus 379785e869 Linker configuration: Add missing platform Haiku
Add Haiku information modules missed by commit c1c4cf9545 (Linker
configuration: introduce a new architecture, 2024-06-05,
v3.31.0-rc1~307^2~1).
2025-02-10 10:27:27 -05:00
Brad King 13cf00ad71 Merge topic 'ticlang-uppercase-arm-architecture' into release-3.31
3fa159dd57 TIClang: Make ARM architecture id uppercase

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10302
2025-02-07 09:46:14 -05:00
Brad King d5ab13e5d1 Merge topic 'ticlang-uppercase-arm-architecture' into release-3.30
3fa159dd57 TIClang: Make ARM architecture id uppercase

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10302
2025-02-07 09:45:59 -05:00
Josef Angstenberger 3fa159dd57 TIClang: Make ARM architecture id uppercase
The initial compiler support implemented in commit 9ba0a54554 (TIClang:
Add support for TI Clang-based compilers, including tiarmclang,
2023-12-06) introduced `Arm` as architecture instead of `ARM` which is
used for all other compilers.
2025-02-07 09:29:32 -05:00
Alexandra Cherdantseva c894bc0831 Linker: Restore support for WHOLE_ARCHIVE with Swift libraries
Add Swift linker information modules missed by commit c1c4cf9545 (Linker
configuration: introduce a new architecture, 2024-06-05,
v3.31.0-rc1~307^2~1) and needed since commit 1e35163ae8 (WHOLE_ARCHIVE
link feature: rely now on linker configuration, 2024-07-01,
v3.31.0-rc1~307^2).

Fixes: #26657
2025-02-03 10:32:34 -05:00
Ihor Sofiichenko c7884ceefa GoogleTest: Restore support for spaces in explicit WORKING_DIRECTORY
Revise commit fc7aa3cd69 (tests: Preserve empty arguments in test
command lines, 2024-09-30, v3.31.0-rc1~33^2) to delay variable expansion
until code evaluation.  Otherwise we may parse the working directory
path as CMake language code.
2025-01-27 12:04:41 -05:00
Felipe Torrezan cd9dd4cf8e IAR: decouple linker location from toolkit's bin dir
The implementation in commit 564d527c04 (IAR: Improve error message for
missing license, 2024-08-12, v3.31.0-rc1~234^2) failed for corner cases
in which symlinks were used from a location different from the one in
which the toolkit is shipped with (`<target>/bin`).

In this new implementation, the `<target>` architecture is taken solely
from the compiler NAME itself for all the supported languages and
forwarded to its respective BinUtils executable names
(e.g., `icc<target>`, `iasm<target>`, `a<target>`). This decouples the
location from the subdirectory in which they should be found.

Fixes: #26610
2025-01-21 19:21:06 +01:00
Brad King 4f5f83a928 Merge topic 'FindMatlab-doc' into release-3.31
6e21dcc0ee FindMatlab: Fix multi-signature function documentation anchors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10186
2025-01-17 08:19:15 -05:00
Brad King 6e21dcc0ee FindMatlab: Fix multi-signature function documentation anchors
Fix use of the `signature::` directive by commit ae558b9ad0 (FindMatlab:
Support REGISTRY_VIEW, 2024-02-08, v3.30.0-rc1~528^2).  The directive
was created for use inside `Help/command/*.rst` documents.  Using it
in module documentation requires explicit anchors.
2025-01-16 14:28:17 -05:00
Brad King ae7f54e6a7 Clang/CUDA: Fix language-wide flags when linking .so with compiler driver
In commit cfa888a6e2 (Clang/CUDA: Add language-wide flags when linking
with compiler driver, 2024-10-07, v3.31.0-rc1~12^2) we added the wrong
placeholder to `CMAKE_CUDA_CREATE_SHARED_LIBRARY` to represent the
language-wide flags.  The `<FLAGS>` placeholder is for executables.
The `<LANGUAGE_COMPILE_FLAGS>` placeholder is for shared libraries.
The distinction is for historical reasons.

Fixes: #26563
2025-01-14 13:20:43 -05:00
Brad King 3df8890638 Merge topic 'lfortran-generate-object-code' into release-3.31
daf6cc89ee LFortran: Remove hard-coded --generate-object-code flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10159
2025-01-10 09:26:54 -05:00
Saurabh Kumar daf6cc89ee LFortran: Remove hard-coded --generate-object-code flag
This was added in commit 98d0f918ba (LFortran: Add support for this
compiler, 2024-01-25, v3.31.0-rc1~303^2~2) because it is needed for
cases covered by CMake's Fortran tests.  However, it does not work
with Fortran modules and breaks lfortran's own `examples/project1`.
Move the flag to the test cases that need it, just as the original
commit did with `--implicit-interface`.

Fixes: #26597
Co-authored-by: Brad King <brad.king@kitware.com>
2025-01-09 14:49:39 -05:00
Brad King 627d710570 Merge topic 'FindBoost-1.87' into release-3.31
f485f94d1a FindBoost: Add support for Boost 1.87

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10147
2025-01-08 09:25:07 -05:00
Brad King f485f94d1a FindBoost: Add support for Boost 1.87
Update the list of known versions.

Run the command

    cmake -DBOOST_DIR=/path/to/boost_1_87_0 \
      -P Utilities/Scripts/BoostScanDeps.cmake

to extract dependencies from the 1.87.0 source tree.

Dependencies differ from 1.86:

* Boost.Log no longer depends on Boost.Chrono

Fixes: #26562
2025-01-07 15:41:31 -05:00