Commit Graph

64205 Commits

Author SHA1 Message Date
Brad King
f23636617a CMakePackageConfigHelpers: Move platform selection template to Internal/
The template added by commit 37bc3400cd (CMakePackageConfigHelpers: Add
generate_apple_platform_selection_file(), 2023-11-03) is a private
implementation detail.  Move it to `Modules/Internal/`.
2023-12-07 16:54:09 -05:00
Brad King
3c991f56e7 Merge branch 'release-3.28' 2023-12-07 10:57:21 -05:00
Brad King
52d854e93b Merge topic 'FindCUDAToolkit-fix-stubs'
d85bf99bcb FindCUDAToolkit: Fix stub library representation on reconfigure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !9045
2023-12-07 10:57:21 -05:00
Brad King
2d60f5c7a6 Merge topic 'FindCUDAToolkit-fix-stubs' into release-3.28
d85bf99bcb FindCUDAToolkit: Fix stub library representation on reconfigure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !9045
2023-12-07 10:57:20 -05:00
Brad King
a4b1541b3a Merge topic 'doc-signatures'
e1519edd91 Help: Use signature directive for the 'add_library' command
bfc9e71d1f Help: Use signature directive for the 'add_executable' command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9044
2023-12-07 09:21:33 -05:00
Brad King
256d532593 Merge topic 'GoogleTest-discovery-scope'
0767016eab GoogleTest: Avoid silent failures of dynamic test discovery

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9038
2023-12-07 09:20:43 -05:00
Brad King
7693a8152d Merge topic 'win-path'
3f2a5971c0 Modules: CMAKE_*_COMPILER convert path to cmake path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9027
2023-12-07 09:18:43 -05:00
Brad King
b2b0d839c1 Merge topic 'LLVMFlang-MSVC'
cd28915260 LLVMFlang: Update MSVC ABI and architecture detection for LLVMFlang 18.0
48302b469e LLVMFlang: Update MSVC runtime library selection for LLVMFlang 18.0
1c07758ca2 CMakeParseImplicitLinkInfo: Exclude LLVMFlang program entry point for MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9036
2023-12-07 09:16:11 -05:00
Brad King
944a9c35cc Merge topic 'makefiles-lwyu-module-libraries'
6b85c71ad8 Makefiles: Add LINK_WHAT_YOU_USE support for MODULE libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9042
2023-12-07 09:15:04 -05:00
Brad King
f0deb107c5 Merge topic 'cmuvprocesschain-external-loop'
0b043a75b7 cmUVProcessChain: Add option for external uv_loop_t

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9040
2023-12-07 09:13:57 -05:00
Brad King
f0539c353c Merge topic 'win-fs'
ad4481fa00 Source: Enhance check for C++17 filesystem support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9028
2023-12-07 09:12:43 -05:00
Brad King
3a7c42fdd9 Merge branch 'release-3.28' 2023-12-07 09:02:14 -05:00
Brad King
092438e9f6 Merge topic 'doc-fetchcontent-bad-ref'
bd50e8a058 Help: Fix malformed cross-reference in FetchContent docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9047
2023-12-07 09:02:14 -05:00
Brad King
a7c21823ce Merge topic 'doc-fetchcontent-bad-ref' into release-3.28
bd50e8a058 Help: Fix malformed cross-reference in FetchContent docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9047
2023-12-07 09:02:13 -05:00
Craig Scott
bd50e8a058 Help: Fix malformed cross-reference in FetchContent docs 2023-12-07 17:04:25 +11:00
Kitware Robot
52145c117a CMake Nightly Date Stamp 2023-12-07 00:01:05 -05:00
Brad King
dba1935059 Merge topic 'doc-dev-maint'
a61efbb7b1 Help/dev: Add informal governance section to maintainer guide

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9043
2023-12-06 16:42:38 -05:00
Brad King
d85bf99bcb FindCUDAToolkit: Fix stub library representation on reconfigure
Since commit 0744c02e24 (FindCUDAToolkit: targets pointing to stubs now
use IMPORTED_IMPLIB, 2023-07-24, v3.28.0-rc1~309^2) we recognize CUDA
stub libraries and represent them in a special way.  However, the logic
only works on the first configuration of a build tree when the libraries
are first found.  Once the results are cached, we incorrectly revert to
the non-stub representation.

Fix this by recognizing stub libraries based on their path instead.
2023-12-06 16:10:24 -05:00
Brad King
e1519edd91 Help: Use signature directive for the 'add_library' command
This allows individual signatures to be cross-referenced from elsewhere.
It also associates with each signature its main documentation via
indentation.
2023-12-06 13:05:23 -05:00
Brad King
bfc9e71d1f Help: Use signature directive for the 'add_executable' command
This allows individual signatures to be cross-referenced from elsewhere.
It also associates with each signature its main documentation via
indentation.
2023-12-06 13:03:03 -05:00
Brad King
a61efbb7b1 Help/dev: Add informal governance section to maintainer guide
Document the status quo w.r.t. governance.
2023-12-06 10:27:11 -05:00
Peter Kokot
6b85c71ad8 Makefiles: Add LINK_WHAT_YOU_USE support for MODULE libraries
This was accidentally left out by Makefile generators.
It already works with Ninja.

Fixes: #25480
2023-12-06 09:49:03 -05:00
Brad King
cd28915260 LLVMFlang: Update MSVC ABI and architecture detection for LLVMFlang 18.0
LLVMFlang 18.0 adds MSVC ABI and architecture macros.  Resolve the
corresponding FIXME left by commit 26bf32cdc6 (LLVMFlang: Add support
for targeting MSVC ABI on Windows, 2023-09-28, v3.28.0-rc1~10^2).

Issue: #24840
2023-12-06 09:42:07 -05:00
Brad King
48302b469e LLVMFlang: Update MSVC runtime library selection for LLVMFlang 18.0
LLVMFlang 18.0 adds MSVC runtime library selection flags and associated
Fortran runtime library variants.  Resolve the corresponding FIXME left
by commit 26bf32cdc6 (LLVMFlang: Add support for targeting MSVC ABI on
Windows, 2023-09-28, v3.28.0-rc1~10^2).

Issue: #24840
2023-12-06 09:42:07 -05:00
Brad King
1c07758ca2 CMakeParseImplicitLinkInfo: Exclude LLVMFlang program entry point for MSVC
As of llvm-project `main` branch commit `86accd4e03` (2023-12-04),
LLVMFlang 18.0.0, when used to drive linking an executable, emits a MSVC
linker flag to use all object files from the `Fortran_main` library.
These object files are meant for use when linking the program entry
point, and so are not implicit link dependencies of Fortran libraries.
2023-12-06 09:42:07 -05:00
Brad King
7b49183f72 Merge branch 'release-3.28' 2023-12-06 09:26:58 -05:00
Brad King
618fdc1c42 CMake 3.28.0 v3.28.0 2023-12-06 08:57:42 -05:00
Brad King
12aae1f0ca Merge branch 'release-3.28' 2023-12-06 08:52:08 -05:00
Brad King
ca1e00e2bf Merge topic 'cxxmodules-msvc-corner-cases'
e63983956d Tests/CXXModules: enhance `internal-partitions` test
8a658fb9ec Tests/CXXModules: import from an internal partition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9039
2023-12-06 08:52:07 -05:00
Brad King
ee79d06d45 Merge topic 'cxxmodules-msvc-corner-cases' into release-3.28
e63983956d Tests/CXXModules: enhance `internal-partitions` test
8a658fb9ec Tests/CXXModules: import from an internal partition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9039
2023-12-06 08:52:06 -05:00
Brad King
ffb200be60 Merge branch 'release-3.28' 2023-12-06 08:51:20 -05:00
Brad King
e913ee37f3 Merge topic 'fix-cxx-module-transitive-requirements'
e9b0dcbbfa cmCxxModuleMapper: Fix transitive requirements computation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9030
2023-12-06 08:51:20 -05:00
Brad King
ef9cba9f42 Merge topic 'fix-cxx-module-transitive-requirements' into release-3.28
e9b0dcbbfa cmCxxModuleMapper: Fix transitive requirements computation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9030
2023-12-06 08:51:18 -05:00
Brad King
0eaad47424 Merge branch 'release-3.28' 2023-12-06 08:50:19 -05:00
Brad King
5b6f7f44fb Merge topic 'LLVMFlang-MSVC-debug'
ef49ed0fe1 LLVMFlang: Fix MSVC ABI debug information format options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9037
2023-12-06 08:50:18 -05:00
Brad King
91392d7741 Merge topic 'LLVMFlang-MSVC-debug' into release-3.28
ef49ed0fe1 LLVMFlang: Fix MSVC ABI debug information format options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9037
2023-12-06 08:50:17 -05:00
Brad King
2e75e1550e Merge branch 'release-3.28' 2023-12-06 08:49:04 -05:00
Brad King
fb54e957d6 Merge topic 'imported-implib-only'
fc6508921c cmComputeLinkInformation: Restore soname lookup for non-imported targets
03d86f9d9c cmGeneratorTarget: Add helper to check for known runtime artifact

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !9041
2023-12-06 08:49:04 -05:00
Brad King
4e96c07b28 Merge topic 'imported-implib-only' into release-3.28
fc6508921c cmComputeLinkInformation: Restore soname lookup for non-imported targets
03d86f9d9c cmGeneratorTarget: Add helper to check for known runtime artifact

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !9041
2023-12-06 08:49:02 -05:00
Brad King
71d308f2a4 Merge topic 'ci-clang-tidy-patch'
1f0c28c840 ci: export clang-tidy fixes as an artifact

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7999
2023-12-06 08:46:08 -05:00
Moritz Haase
0767016eab GoogleTest: Avoid silent failures of dynamic test discovery
The internal helper variable '_GOOGLETEST_DISCOVER_TESTS_SCRIPT' can have gone
out-of-scope when 'gtest_discover_tests()' is called, depending on where the
GoogleTest module is actually included. This leads to a silent failure of
dynamic test discovery, since the custom post-build commands actually does
nothing (it basically invokes 'cmake -P ""'). Ctest will then fail to run the
tests, considering them to be 'not built'.

Fix this by determining the path to the GoogleTest module based on
'${CMAKE_ROOT}' instead, which is always available.

A new test case was added to test suite 'RunCMake/GoogleTest' to ensure that
'gtest_discover_tests()' works correctly when invoked in a different variable
scope.

Fixes: #25477
2023-12-06 12:52:18 +01:00
Kitware Robot
98cbe24918 CMake Nightly Date Stamp 2023-12-06 00:01:13 -05:00
Michael Hirsch
3f2a5971c0 Modules: CMAKE_*_COMPILER convert path to cmake path
Fixes #25456

Before this, CMake configure halted as the slashes were
interpreted as invalid escape characters
2023-12-05 19:08:39 -05:00
Brad King
fc6508921c cmComputeLinkInformation: Restore soname lookup for non-imported targets
In commit 7351d590ee (cmTarget: Add a way to represent imported shared
library stubs, 2023-07-17, v3.28.0-rc1~344^2) we accidentally stopped
passing the SONAME of a non-imported SHARED library to our runtime
search path ordering logic.  Unfortunately I have not found a way to add
a test case for this, but it at least shouldn't regress existing tests
or those added by that commit.
2023-12-05 15:50:56 -05:00
Brad King
03d86f9d9c cmGeneratorTarget: Add helper to check for known runtime artifact 2023-12-05 15:48:36 -05:00
Kyle Edwards
0b043a75b7 cmUVProcessChain: Add option for external uv_loop_t 2023-12-05 14:48:24 -05:00
Kyle Edwards
1f0c28c840 ci: export clang-tidy fixes as an artifact 2023-12-05 11:53:35 -05:00
Michael Hirsch
ad4481fa00 Source: Enhance check for C++17 filesystem support
* Add `lexically_normal` test for all platforms.

* On Windows, MinGW does not currently handle `lexically_normal()`
  correctly on UNC path, but MSVC and IntelLLVM do--add a comment
  on this to avoid future confusion.

* Add test with `\\?\` notation and `weakly_canonical` that also triggers
  the MinGW bug, but is fine with MSVC and oneAPI, for a more robust and
  comprehensive test.
2023-12-05 11:30:08 -05:00
namniav
e9b0dcbbfa cmCxxModuleMapper: Fix transitive requirements computation
Previously CMake may generate incomplete transitive requirements in
CMakeFiles/<target>.dir/CXXModules.json and therefore in module mapper
for compiler, when source files were listed in CMakeList.txt in a
certain order.

This commit fixes the problem by correctly tracking unfinished
transitive requirements computation of module units.

There have been a simple circular test case whose circular dependency
was reported by build system. Now with this correct implementation it's
reported by CMake generating module mappers.

Add two test cases for transitive requirements computation, one with
adding source files in hardcoded order, and the other in randomized
order.

Fixes: #25465
2023-12-05 10:26:10 -05:00
Brad King
57b94595a3 Merge branch 'release-3.28' 2023-12-05 09:29:45 -05:00