Commit Graph

37549 Commits

Author SHA1 Message Date
Brad King
7db3dbddb2 VS: Suppress MSBuild default flags not specified by project or user
`Microsoft.Cl.Common.props` adds some `cl` flags by default, but for
CMake they may not match what's produced by command-line generators.
If the `-Zc:wchar_t`, `-Zc:forScope`, and/or `-Zc:inline` flags are
not specified by the project or user, suppress them.

Fixes: #26964
2025-06-02 14:59:38 -04:00
Brad King
81bcc806d3 Merge topic 'allow-assigning-argument-helpers'
5eec48ee40 cmArgumentParser: Simplify assignment of marker types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10845
2025-06-02 09:18:38 -04:00
Brad King
91cdfe6676 Merge topic 'linker-launcher'
cdf2a36f48 HIP: Add support for [CMAKE_]HIP_LINKER_LAUNCHER
77312cc636 CUDA: Add support for [CMAKE_]CUDA_LINKER_LAUNCHER

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10847
2025-06-02 09:02:46 -04:00
Kitware Robot
45670ce4de CMake Nightly Date Stamp 2025-06-02 00:07:13 -04:00
Kitware Robot
14ba99b5d5 CMake Nightly Date Stamp 2025-06-01 00:04:21 -04:00
Kitware Robot
747f4713dd CMake Nightly Date Stamp 2025-05-31 00:04:34 -04:00
Matthew Woehlke
5eec48ee40 cmArgumentParser: Simplify assignment of marker types
Explicitly allow argument markers to be assigned. Make use of this in
parsing. This simplifies working with these types, by allowing them to
be assigned from the underlying types using simple `a = b` syntax,
rather than requiring gymnastics to access the underlying assignment
operations. It also makes assignment more consistent with
initialization.
2025-05-30 11:10:41 -04:00
Maximilian Sander
cdf2a36f48 HIP: Add support for [CMAKE_]HIP_LINKER_LAUNCHER
`CMAKE_<LANG>_LINKER_LAUNCHER` and `<LANG>_LINKER_LAUNCHER` are
already support for C, CXX, CUDA, OBJC, OBJCXX, and Fortran.  Add HIP.

Closes: #26967
2025-05-30 10:05:46 -04:00
Maximilian Sander
77312cc636 CUDA: Add support for [CMAKE_]CUDA_LINKER_LAUNCHER
`CMAKE_<LANG>_LINKER_LAUNCHER` and `<LANG>_LINKER_LAUNCHER` are
already support for C, CXX, OBJC, OBJCXX, and Fortran.  Add CUDA.

Issue: #26967
2025-05-30 10:00:18 -04:00
Kitware Robot
ab5866c2d2 CMake Nightly Date Stamp 2025-05-30 00:04:41 -04:00
Brad King
c3b2e5b444 Merge topic 'fix-project-COMPAT_VERSION'
09701440d9 project: Fix handling of COMPAT_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10838
2025-05-29 10:13:11 -04:00
Brad King
1c8fa92921 Merge topic 'windows-module-def-per-lang'
8b710d8264 Linker: Generate per-language module -DEF: flags on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Markus Mützel <markus.muetzel@gmx.de>
Merge-request: !10836
2025-05-29 10:11:13 -04:00
Brad King
975b78d0eb Merge topic 'remove-CMakeDetermineVSServicePack'
39da33ae81 CMakeDetermineVSServicePack: Add policy to remove this module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10834
2025-05-29 10:07:44 -04:00
Kitware Robot
df894a11b3 CMake Nightly Date Stamp 2025-05-29 00:04:53 -04:00
Matthew Woehlke
09701440d9 project: Fix handling of COMPAT_VERSION
In cmProjectCommand, after validating the VERSION, we move it into a
local variable. Later, however, we were comparing COMPAT_VERSION against
the VERSION stored in the arguments. Compare to the local variable
instead.
2025-05-28 14:28:51 -04:00
Brad King
8b710d8264 Linker: Generate per-language module -DEF: flags on Windows
With IntelLLVM on Windows, we link using the compiler driver.
With MSVC on Windows, we invoke the linker directly.  If we
use both in a single build tree, for separate languages,
the value of `CMAKE_LINK_DEF_FILE_FLAG` conflicts.  Add a
per-language `CMAKE_<LANG>_LINK_DEF_FILE_FLAG` variable to
avoid the conflict.  Preserve the language-agnostic variable
for compatibility with projects that reference it.

Fixes: #26005
2025-05-28 13:48:26 -04:00
Brad King
39da33ae81 CMakeDetermineVSServicePack: Add policy to remove this module
It has been documented as deprecated since CMake 3.0.
2025-05-28 09:47:06 -04:00
Brad King
bc9785a12b Merge topic 'linker-launcher'
d176a8c5ce Fortran: Add support for [CMAKE_]Fortran_LINKER_LAUNCHER

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10831
2025-05-28 09:17:17 -04:00
Brad King
3bc68185b1 Merge topic 'cpack-DragNDrop-leaks'
07d9e9b5fe CPack/DragNDrop: Release CoreFoundation objects after they are used

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10830
2025-05-28 09:15:50 -04:00
Brad King
68f49d73bb Merge topic 'cpack-DragNDrop-crash'
bbc98fb67a CPack/DragNDrop: Avoid crash when locale identifier creation fails

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10829
2025-05-28 09:14:14 -04:00
Kitware Robot
40c8ad97ff CMake Nightly Date Stamp 2025-05-28 00:04:28 -04:00
AZero13
07d9e9b5fe CPack/DragNDrop: Release CoreFoundation objects after they are used
Otherwise we will be leaking memory.
2025-05-27 11:19:19 -04:00
AZero13
bbc98fb67a CPack/DragNDrop: Avoid crash when locale identifier creation fails
If `CFLocaleCreateCanonicalLanguageIdentifierFromString` fails, stop
gracefully.  Otherwise we crash because `CFStringGetCString` cannot work
with null `CFStrings`.
2025-05-27 11:09:55 -04:00
Maximilian Sander
d176a8c5ce Fortran: Add support for [CMAKE_]Fortran_LINKER_LAUNCHER
`CMAKE_<LANG>_LINKER_LAUNCHER` and `<LANG>_LINKER_LAUNCHER` are
already support for C, CXX, OBJC, and OBJCXX.  Add Fortran.

Closes: #26951
2025-05-27 11:00:54 -04:00
Brad King
2cf735a5dc Merge topic 'target-file-dir-refactoring'
c95a8348ce cmLocalGenerator: add an override for CMakeFiles-using paths
35d32b8741 cmLocalGenerator: move the `CMakeFiles` subdir from the target to output root
bc19e42461 generators: use `GetObjectOutputRoot` to compute target directories
b1d9a5313c cmLocalGenerator: add a `GetObjectOutputRoot` method
b82a74d918 generators: use GetSupportDirectory() in more places
36f85ee0cc cmGeneratorTarget: query the local generator for the target directory
ff5d7bc301 cmLocalXCodeGenerator: use a per-target directory
aafd771529 cmNinjaTargetGenerator: use `GetObjectFileDir` where possible
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10812
2025-05-27 09:40:42 -04:00
Brad King
13254bea62 Merge topic 'try_compile-propagate-vars'
b0eb74cba5 try_compile: Restore propagation of CMAKE_<LANG>_LINK_PIE_SUPPORTED

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10818
2025-05-27 09:38:10 -04:00
Kitware Robot
ede59aac3f CMake Nightly Date Stamp 2025-05-27 00:04:37 -04:00
Kitware Robot
38bcc1d014 CMake Nightly Date Stamp 2025-05-26 00:04:33 -04:00
Kitware Robot
cfcff29087 CMake Nightly Date Stamp 2025-05-25 00:04:42 -04:00
Ben Boeckel
c95a8348ce cmLocalGenerator: add an override for CMakeFiles-using paths
Visual Studio doesn't use a `CMakeFiles` subdirectory for its support
directories. However, some codepaths expect to use paths which are
always under `CMakeFiles`. Add a mechanism to keep the path for such
files.
2025-05-24 15:28:50 +02:00
Ben Boeckel
35d32b8741 cmLocalGenerator: move the CMakeFiles subdir from the target to output root
When target directories are shortened, the `CMakeFiles` path component
will be part of the root, not the target directory. Since other files
end up constructing paths manually, move the differing component into
the correct logical path construction part.
2025-05-24 15:28:47 +02:00
Ben Boeckel
bc19e42461 generators: use GetObjectOutputRoot to compute target directories
In a coming change to shorten directory paths, this allows one place to
decide how to compute the target path root.
2025-05-24 15:27:38 +02:00
Brad King
f8cc68d282 Merge topic 'wix-include-build-dir'
900897b510 CPack/WiX: Add the build directory to IncludeSearchPaths for wix.exe
a86eaf98f7 CPack/WiX: Restore condition for passing build directory to candle search path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10816
2025-05-24 07:15:35 -04:00
Brad King
a2f22d6a56 Merge topic 'stdio-streams'
fb3e7825f3 StdIo: Restore Windows Console I/O modes on exit

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !10817
2025-05-24 07:14:09 -04:00
Brad King
b0eb74cba5 try_compile: Restore propagation of CMAKE_<LANG>_LINK_PIE_SUPPORTED
Refactoring in commit c4e890946a (try_compile: consistently add language
properties, 2020-06-15, v3.19.0-rc1~633^2) accidentally dropped the
`_LINK` part of the name.  It also miscounted array indexes in a way
that happened to propagate `CMAKE_<LANG>_LINK_NO_PIE_SUPPORTED` whether
or not it is needed for the CMP0083 NEW behavior.  Simplify the code and
fix the variable name.

Fixes: #26948
2025-05-24 07:10:02 -04:00
Kitware Robot
78ce5b4fee CMake Nightly Date Stamp 2025-05-24 00:04:47 -04:00
Brad King
fb3e7825f3 StdIo: Restore Windows Console I/O modes on exit
The Windows documentation [1] states:

> command-line applications should capture the initial console
> mode at startup and attempt to restore it when exiting

We set `ENABLE_VIRTUAL_TERMINAL_{INPUT,PROCESSING}` modes since
commit d6a1ff59f1 (StdIo: Provide metadata about stdin, stdout,
stderr streams, 2025-05-06).  Avoid leaking them.

[1] https://learn.microsoft.com/en-us/windows/console/console-modes

Issue: #26924
2025-05-23 10:35:47 -04:00
Julian Greilich
900897b510 CPack/WiX: Add the build directory to IncludeSearchPaths for wix.exe
In commit f2134169f6 (WiX: Add the build directory to IncludeSearchPaths
for candle.exe, 2018-07-06, v3.13.0-rc1~318^2) we implemented this for
WiX v3 with `candle.exe`.  Use the same mechanism for Wix v4 and upwards
for `wix.exe`.
2025-05-23 08:41:13 -04:00
Julian Greilich
a86eaf98f7 CPack/WiX: Restore condition for passing build directory to candle search path
Refactoring in commit 48adc29721 (replace "std::string::find(x) == 0"
with cmHasPrefix(), 2020-03-20, v3.18.0-rc1~488^2~7) accidentally
changed `std::string::rfind(x, 0) != 0` to `!cmHasSuffix()` instead of
`!cmHasPrefix()`.

This is currently not an big issue, but leads to the build directory
being included even when no source file outside the build directory is
used in the project.
2025-05-23 08:40:44 -04:00
Brad King
12d8baadab Merge topic 'ctest-color-windows'
0b61a17c93 ctest: Enable color output on Windows Consoles supporting VT100 escapes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10813
2025-05-23 08:30:16 -04:00
Brad King
c834f85ab0 Merge topic 'ctest-submit-cleanup'
afd6c2966e cmCTestSubmitHandler: Move internal helpers to anonymous namespace
78f0b2aeed cmCTestSubmitHandler: Make internal method private
2a9cfc2da3 cmCTestSubmitHandler: Remove unnecessary type alias
8f698e1708 cmCTestSubmitHandler: Open log file earlier
7475921ff8 cmCTestSubmitHandler: Inline and remove method called only once

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10815
2025-05-23 08:28:32 -04:00
Brad King
2bd60d2d2f Merge topic 'swift-module-nested-structure'
1711e86d6c Swift: Generate nested swift modules in build dir
b36175abdb Swift: Detect module triple from compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10664
2025-05-23 08:23:28 -04:00
John Parent
b1d9a5313c cmLocalGenerator: add a GetObjectOutputRoot method
This will allow object locations to be changed in a single place.
2025-05-23 11:39:54 +02:00
Ben Boeckel
b82a74d918 generators: use GetSupportDirectory() in more places 2025-05-23 11:39:53 +02:00
John Parent
36f85ee0cc cmGeneratorTarget: query the local generator for the target directory 2025-05-23 11:39:53 +02:00
Kitware Robot
c9e1731416 CMake Nightly Date Stamp 2025-05-23 00:04:35 -04:00
Ben Boeckel
ff5d7bc301 cmLocalXCodeGenerator: use a per-target directory
With all code starting to go towards using per-target directories, Xcode
needs to use one as well.
2025-05-23 00:24:01 +02:00
Brad King
afd6c2966e cmCTestSubmitHandler: Move internal helpers to anonymous namespace 2025-05-22 14:30:38 -04:00
Brad King
78f0b2aeed cmCTestSubmitHandler: Make internal method private 2025-05-22 14:30:38 -04:00
Brad King
2a9cfc2da3 cmCTestSubmitHandler: Remove unnecessary type alias 2025-05-22 14:30:37 -04:00