1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00
Commit Graph

69390 Commits

Author SHA1 Message Date
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
Brad King
14ffd1cc4e cmXCodeObject: Drop unused CoreFoundation header
It has not been needed since commit d250b67722 (cmGlobalXCodeGenerator:
Adopt pbxproj object id generation, 2021-01-06, v3.19.3~4^2~2).
2025-04-08 11:38:23 -04:00
Brad King
2164da0ae6 Help: Document CMAKE_OSX_SYSROOT default change in 4.0
In commit 7b19531291 (macOS: Do not pass any SDK/-isysroot to compilers
by default, 2024-11-06, v4.0.0-rc1~511^2) we forgot to update the
documentation of `CMAKE_OSX_SYSROOT`.

Fixes: #26846
2025-04-08 11:07:17 -04:00
Brad King
f21682cf1a Merge topic 'normalize-input-paths' into release-4.0
5805461074 cmSystemTools: Simplify call to FindProgram for our own executable
db0e2574cb cmSystemTools: Restore FindProgram look-up of on-disk case on Windows
5d700abda4 Source: Simplify FindProgram calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10620
2025-04-08 10:45:45 -04:00
Brad King
30d04b1f17 Merge branch 'release-3.31' into release-4.0 2025-04-08 10:43:15 -04:00
Brad King
1c08b49347 Merge topic 'backport-3.31-apple-posix' into release-3.31
aa64d4482f macOS: Define _DARWIN_C_SOURCE in more sources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10619
2025-04-08 10:42:25 -04:00
Brad King
bbea5ca409 Merge topic 'apple-posix' into release-4.0
f183631ae3 Merge branch 'backport-3.31-apple-posix' into apple-posix
aa64d4482f macOS: Define _DARWIN_C_SOURCE in more sources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10619
2025-04-08 10:42:16 -04:00
Brad King
5805461074 cmSystemTools: Simplify call to FindProgram for our own executable
Remove the unnecessary `FindProgramPath` wrapper.  Call the KWSys
`FindProgram` directly, without our CMake-specific wrapper, since
we follow-up with a `ToNormalizedPathOnDisk` anyway.
2025-04-07 19:57:07 -04:00
Brad King
db0e2574cb cmSystemTools: Restore FindProgram look-up of on-disk case on Windows
KWSys's `FindProgram` no longer looks up the actual case on disk.  This
behavior change was inherited from the change to `CollapseFullPath`.
Extend commit 773b75e4ed (cmake: Explicitly look up on-disk case of
input paths on Windows, 2024-10-23, v4.0.0-rc1~589^2) to cover this by
wrapping `FindProgram` in a CMake-specific layer.

Issue: #20214
2025-04-07 19:57:07 -04:00
Brad King
5d700abda4 Source: Simplify FindProgram calls
Remove defaulted arguments.  Remove unnecessary `.c_str()`.
2025-04-07 19:55:30 -04:00
Brad King
f183631ae3 Merge branch 'backport-3.31-apple-posix' into apple-posix 2025-04-07 15:57:25 -04:00
Sergey Fedorov
aa64d4482f macOS: Define _DARWIN_C_SOURCE in more sources
Restore Darwin APIs removed by `_POSIX_C_SOURCE`.
2025-04-07 15:56:36 -04:00
Brad King
d88b3e3ece Merge topic 'test-tolerate-env-Werror' into release-4.0
2f9211b4e4 Tests: Isolate RunCMake.LinkWarningAsError from -Werror flags in environment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10587
2025-04-04 08:24:30 -04:00
Brad King
2f9211b4e4 Tests: Isolate RunCMake.LinkWarningAsError from -Werror flags in environment
Fixes: #26836
2025-04-03 15:12:26 -04:00
Brad King
3e4519a4e3 Merge topic 'find_package-cps-multiple-inclusion' into release-4.0
b498611902 find_package: Add minimal support for CPS multiple inclusion

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10581
2025-04-03 14:06:51 -04:00
Brad King
77b3c85fe8 Merge topic 'restore-home-tidle' into release-4.0
01f92efeb0 Restore expansion of leading '~' as home directory in input paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10580
2025-04-03 14:04:55 -04:00
Brad King
01f92efeb0 Restore expansion of leading '~' as home directory in input paths
This was accidentally dropped by commit 622596c6b2 (cmSystemTools:
Re-implement ToNormalizedPathOnDisk without translation map, 2024-10-30,
v4.0.0-rc1~528^2~5).  Previously it was done by `CollapseFullPath`.
`cm::PathResolver` intentionally does not expand `~` because it makes
sense only for transforming input paths.  Teach `ToNormalizedPathOnDisk`
to handle it directly.

Fixes: #26827
2025-04-02 14:41:48 -04:00
Matthew Woehlke
b498611902 find_package: Add minimal support for CPS multiple inclusion
Do not try to load a CPS file if we've already loaded the same file.
This only works if the current `find_package` call selects the same file
as the previous most recent call, and if the user has not meddled with
the `<name>_CONFIG` variable.

Issue: #26731
2025-04-02 13:45:36 -04:00
Brad King
7167236ba3 Merge topic 'find_package-fix-nested-calls' into release-4.0
37823b366f find_package: Restore component requirements in nested calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10576
2025-04-02 10:23:27 -04:00
Matthew Woehlke
37823b366f find_package: Restore component requirements in nested calls
Fix logic to populate required and optional components from CMake
variables when `find_package` is called in a nested context.

This was broken in commit e2a6416622 (find_package: Refactor in support
of recursion, 2024-11-29, v4.0.0-rc1~356^2), which promoted the
component sets from locals (in cmFindPackageCommand::InitialPass) to
member variables. Previously, in a nested context, these sets were
simply not filled, and we relied on the variables indicating component
requirement to already be set. When logic was added to properly fill the
sets (which is needed for CPS), it blindly dumped all components into
the required set, without actually checking whether the context had
marked the components as required or optional.

Fixes: #26824
2025-04-02 10:16:40 -04:00
Brad King
bb2126ccc8 Merge topic 'ci-xcode-16.3' into release-4.0
3b4adc2043 ci: update macOS jobs to use Xcode 16.3

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10575
2025-04-02 10:14:20 -04:00
Brad King
e0bc2f9705 Merge topic 'revert-get_filename_component-REALPATH-symlink-parent' into release-4.0
94d65a9535 get_filename_component: Restore lexical preprocessing of REALPATH for compat

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10564
2025-04-02 10:12:22 -04:00
Brad King
c653c1aa47 FindXCTest: Pass -bundle_loader linker flag for test module more reliably 2025-04-02 09:31:11 -04:00
Brad King
3b4adc2043 ci: update macOS jobs to use Xcode 16.3 2025-04-01 13:10:32 -04:00
Brad King
faa225b63b Merge topic 'unity-relative-paths' into release-4.0
f706d8064b Help: Clarify wording of UNITY_BUILD_RELOCATABLE path alternatives
20412690fb Help: Add 4.0 release note for UNITY_BUILD_RELOCATABLE
89cea1c642 Help: Document CMAKE_UNITY_BUILD_RELOCATABLE variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10570
2025-04-01 12:54:34 -04:00
Brad King
94d65a9535 get_filename_component: Restore lexical preprocessing of REALPATH for compat
Revert commit c554437733 (get_filename_component: Fix REALPATH for ..
after symlink, 2024-11-21, v4.0.0-rc1~411^2) because it changed existing
behavior without a policy.  Also add a test case for the old behavior.

Note that we have policy `CMP0152` to fix this for `file(REAL_PATH)`,
but it does not affect `get_filename_component(... REALPATH)`.  A new
policy would be needed for the latter.

Fixes: #26815
Issue: #26472
2025-04-01 09:45:03 -04:00
Brad King
f706d8064b Help: Clarify wording of UNITY_BUILD_RELOCATABLE path alternatives 2025-03-31 19:35:30 -04:00
Brad King
20412690fb Help: Add 4.0 release note for UNITY_BUILD_RELOCATABLE
This was left out of commit 84996a65aa (Unity: Add option to use
relative paths for unity files, 2024-10-15, v4.0.0-rc1~637^2).

Issue: #26352
2025-03-31 19:31:03 -04:00
Brad King
89cea1c642 Help: Document CMAKE_UNITY_BUILD_RELOCATABLE variable
In commit 84996a65aa (Unity: Add option to use relative paths for unity
files, 2024-10-15, v4.0.0-rc1~637^2) we added support for this variable
to initialize the `UNITY_BUILD_RELOCATABLE` target property, but forgot
to document it.

Issue: #26352
2025-03-31 19:31:00 -04:00
Craig Scott
468878b546 Merge topic 'doc-4.0-release-cleanup' into release-4.0
5dff5e2f7f Help: Fix typo in 4.0 release notes for CPack archive generator
713968c280 Help: Improve wording of docs related to MSVC runtime checks
316aaa6cdd Help: Fix inaccurate wording for CMAKE_XCODE_SCHEME_... variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10545
2025-03-30 06:00:06 -04:00
Craig Scott
5dff5e2f7f Help: Fix typo in 4.0 release notes for CPack archive generator 2025-03-28 14:23:47 +11:00
Craig Scott
713968c280 Help: Improve wording of docs related to MSVC runtime checks 2025-03-28 14:23:47 +11:00
Craig Scott
316aaa6cdd Help: Fix inaccurate wording for CMAKE_XCODE_SCHEME_... variables 2025-03-28 14:23:46 +11:00
Brad King
f76a123f98 CMake 4.0.0 v4.0.0 2025-03-27 10:29:51 -04:00
Brad King
0b9b03cda1 Merge branch 'release-3.31' into release-4.0 2025-03-27 09:14:08 -04:00
Brad King
f2a3a84834 Merge topic 'FindCUDAToolkit-cupti' into release-4.0
cbb8f30ee6 CUDAToolkit: Restore ability to find cupti library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !10533
2025-03-27 09:10:30 -04:00
Brad King
42e2964c5f Merge branch 'release-3.30' into release-3.31 2025-03-27 09:10:09 -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