Commit Graph

38023 Commits

Author SHA1 Message Date
Ben Boeckel
2b85541e39 cxximportstd: support setting the import std metadata location
Some deployments may not be able to discover the metadata file reliably
(e.g., custom `clang` builds on macOS while using the SDK's stdlib or
distribution bugs). Allow users to force the location so that
compiler-driven detection doesn't have to bend over backwards for
unforeseen bugs.
2025-09-11 18:03:00 -04:00
Brad King
568e3318bc Merge topic 'wix-multi-cab'
193f17102f CPack/WiX: Implement opt-in per component .cab

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11166
2025-09-11 12:04:27 -04:00
Kitware Robot
50e5040cda CMake Nightly Date Stamp 2025-09-11 00:05:14 -04:00
Brad King
29633b2f81 Merge topic 'ninja-status-unset-configure'
b5e06311c0 Ninja: Avoid non-standard output from `ninja` during `try_compile`
fe0e2fcaff ScopedEnv: add a RAII helper to temporarily manipulate the environment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !11143
2025-09-10 10:06:49 -04:00
Brad King
042b88e3f4 Merge topic 'object-name-properties'
b53837a1bd prop_sf/INSTALL_OBJECT_NAME: support custom install object names
08f1a0fbc6 cmLocalGenerator: get the configuration when building object paths
168e55be41 cmObjectLocation: support install-specific object locations
84372ce0b5 prop_sf/OBJECT_NAME: no-op for the FASTBuild and Xcode generators
9ef99353cb prop_sf/OBJECT_NAME: support custom object names
7aff0d37b5 cmSourceFile: add accessors for PCH source files
bbdc2fd908 cmSourceFile: internally track CMake-managed source files
388923818d cmGeneratorTarget: return the source file added
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11144
2025-09-10 10:01:47 -04:00
Brad King
e0a9bbfc23 Merge topic 'target-SKIP_LINTING'
f100769d72 Add `SKIP_LINTING` target property and `CMAKE_SKIP_LINTING` variable
0d6b5d54b2 Tests/RunCMake/MultiLint: Extract test preparation code into separate file
3a21092d75 Tests/RunCMake/MultiLint: Refactor test runs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11139
2025-09-10 09:53:48 -04:00
Nils Gladitz
193f17102f CPack/WiX: Implement opt-in per component .cab
By setting CPACK_WIX_CAB_PER_COMPONENT users can generate one
.cab per component instead of one .cab per installer.

WiX compresses .cab files in parallel.
This may potentially speed up installer creation.

May also allow larger installers (there is a 2GB per .cab limit).
2025-09-10 12:24:42 +02:00
Kitware Robot
082071203f CMake Nightly Date Stamp 2025-09-10 00:05:08 -04:00
Ben Boeckel
b53837a1bd prop_sf/INSTALL_OBJECT_NAME: support custom install object names
These can support configuration-dependent queries much more easily, so
separate it out.
2025-09-09 09:58:07 -04:00
Ben Boeckel
08f1a0fbc6 cmLocalGenerator: get the configuration when building object paths
Install locations can be per-configuration, so this information is
necessary for this call. Plumb it through; usage will follow in the next
commit.
2025-09-09 09:58:07 -04:00
Ben Boeckel
168e55be41 cmObjectLocation: support install-specific object locations
This will be used to implement custom install object paths. These can
support per-configuration values much more easily as it is
generator-agnostic.
2025-09-09 09:58:07 -04:00
Ben Boeckel
84372ce0b5 prop_sf/OBJECT_NAME: no-op for the FASTBuild and Xcode generators
There's no control over the object base name implemented in the
FASTBuild generator. Rather than expecting some half-supported behavior,
just ignore it completely there.

Similarly, Xcode ends up making its own object paths internally
regardless of what CMake would like.
2025-09-09 09:58:07 -04:00
Ben Boeckel
9ef99353cb prop_sf/OBJECT_NAME: support custom object names
Projects which ship object files as artifacts may want to control the
object names as much as possible. Support setting explicit object names
as source file properties to support such use cases.
2025-09-09 09:58:07 -04:00
Alex Turbov
f100769d72 Add SKIP_LINTING target property and CMAKE_SKIP_LINTING variable
These offer target-wide settings to disable lints.

Closes: #27191
2025-09-09 09:56:35 -04:00
Brad King
526b32ccc0 Merge topic 'c++23-ambiguous-overload'
9fac84dd7f cmStringAlgorithms: Fix C++23 ambiguous overload error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !11155
2025-09-09 09:50:50 -04:00
Brad King
517214ed9b Merge topic 'typos-1.36.1'
8fb6449275 ci: Update to typos 1.36.1 in Fedora base image
49e05f9569 pre-commit: bump to typos 1.36.1
20e19a713d Source: Fix typo discovered by typos 1.36.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11150
2025-09-09 09:43:31 -04:00
Kitware Robot
ea2069bf9d CMake Nightly Date Stamp 2025-09-09 00:05:11 -04:00
John Drouhard
b5e06311c0 Ninja: Avoid non-standard output from ninja during try_compile
We sometimes parse the output from `ninja` during `try_compile`. Avoid
unexpected characters.

Fixes: #19316
2025-09-08 16:22:58 -05:00
John Drouhard
fe0e2fcaff ScopedEnv: add a RAII helper to temporarily manipulate the environment 2025-09-08 16:22:58 -05:00
Alex Turbov
20e19a713d Source: Fix typo discovered by typos 1.36.1 2025-09-08 12:14:39 -04:00
Ben Boeckel
7aff0d37b5 cmSourceFile: add accessors for PCH source files
`cmLocalGenerator::GetObjectFileNameWithoutTarget` used a heuristic to
detect PCH sources. Use the new special source types to detect them
reliably instead.
2025-09-08 11:59:57 -04:00
Ben Boeckel
bbdc2fd908 cmSourceFile: internally track CMake-managed source files
These source file types don't necessarily show up in the CMake code, but
are side effects of other behaviors in CMake. Support tracking them
specially so that heuristics are not required to figure out if a given
`cmSourceFile` is one of them.
2025-09-08 11:59:57 -04:00
Ben Boeckel
388923818d cmGeneratorTarget: return the source file added
A few callsites uses this codepath to generate `cmSourceFile` instances;
allow them to access it.
2025-09-08 11:59:57 -04:00
Ben Boeckel
232feec0b1 cmCMakePath: support constructing .end() iterators
Dereferencing the iterator must be avoided once it becomes the `.end()`
value. Check for iterator validity before updating the `PathElement`
member.
2025-09-08 11:59:56 -04:00
Ben Boeckel
99d48a842d cmLocalGenerator: fix comment typo 2025-09-08 11:59:56 -04:00
Brad King
a3a3416bc1 Merge topic 'install-object-only-destination'
c1de3c72a3 install: support using `DESTINATION` as-is for object installation
cf44806e7c Help/CMAKE_INSTALL_OBJECT_NAME_STRATEGY: add `versionadded` directive

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11138
2025-09-08 11:32:05 -04:00
Brad King
bf1841534c Merge topic 'cpack-several-checksums'
bc1c295b95 CPack: Add support for multiple checksums per package

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11141
2025-09-08 11:29:34 -04:00
Brad King
daf5cc56a0 Merge topic 'fbuild_clang_cl'
888e9e1081 FASTBuild: fix CMake build with clang-cl

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !11137
2025-09-08 11:25:51 -04:00
Kitware Robot
522fe30232 CMake Nightly Date Stamp 2025-09-08 00:05:19 -04:00
Kitware Robot
97eac96b27 CMake Nightly Date Stamp 2025-09-07 00:13:42 -04:00
Ben Boeckel
c1de3c72a3 install: support using DESTINATION as-is for object installation
CMake historically has forced an `objects[-<CONFIG>]/<TARGET_NAME>`
subdirectory under an `OBJECT` library installation's `OBJECTS
DESTINATION` which may be unwanted. Support skipping this component
with a target property.
2025-09-06 00:44:42 -04:00
Kitware Robot
1a8e331fea CMake Nightly Date Stamp 2025-09-06 00:05:04 -04:00
Nicolas van Kempen
9fac84dd7f cmStringAlgorithms: Fix C++23 ambiguous overload error 2025-09-05 20:31:55 -04:00
Brad King
58bde95a0a Merge topic 'instrumentation-rename-hooks'
7c13444fb5 Experimental: Update the Instrumentation UUID
fbb5b47fbf instrumentation: Rename postTest and postInstall hooks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11148
2025-09-05 09:55:05 -04:00
Brad King
4585c81426 Merge topic 'instrumentation-install-trace'
933176c2d1 instrumentation: Rename install and custom trace events

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11147
2025-09-05 09:52:38 -04:00
Brad King
d48a9e1111 Merge topic 'vs-cleanup'
a5cb4fe1c6 cmGlobalVisualStudioGenerator: Remove unused code left from VS 7.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11149
2025-09-05 09:40:38 -04:00
Brad King
032b091c3e Merge topic 'unity-filename-prefix'
5723e65215 Unity: Add a target property to control generated filenames

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11068
2025-09-05 09:18:26 -04:00
Brad King
80e76ff643 Merge topic 'cpack-appimage'
1a6dbcc9ea CPack: Add AppImage generator
9f2949bc68 ci: Add script to install appimagetool in Linux jobs
069f858f42 ci: Add patchelf and appstream to Fedora base image

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10990
2025-09-05 08:58:45 -04:00
Sergiu Deitsch
bc1c295b95 CPack: Add support for multiple checksums per package
Closes: #27174
2025-09-05 08:42:17 -04:00
Eduard Voronkin
888e9e1081 FASTBuild: fix CMake build with clang-cl
Fixes: #27175
2025-09-04 22:12:37 -07:00
Kitware Robot
2870bab401 CMake Nightly Date Stamp 2025-09-05 00:05:28 -04:00
Tyler Yankee
7c13444fb5 Experimental: Update the Instrumentation UUID
Update experimental UUID for instrumentation after commit fbb5b47fbf
(instrumentation: Rename postTest and postInstall hooks, 2025-09-04)
broke old hook names.
2025-09-04 14:01:17 -04:00
Tyler Yankee
fbb5b47fbf instrumentation: Rename postTest and postInstall hooks
`postCTest` and `postCMakeInstall` are more closely aligned with the
corresponding snippets which cause cause them to trigger (`ctest` and
`cmakeInstall`, respectively), and as such serve as better indicators of
their true behavior.
2025-09-04 12:39:39 -04:00
Brad King
a5cb4fe1c6 cmGlobalVisualStudioGenerator: Remove unused code left from VS 7.1
Since commit c94f1bcf92 (Drop Visual Studio 7 .NET 2003 generator,
2017-04-19, v3.9.0-rc1~248^2) we no longer need special solution-level
target dependencies.  We use `LinkLibraryDependencies` instead.
2025-09-04 12:30:02 -04:00
Tyler Yankee
933176c2d1 instrumentation: Rename install and custom trace events
Follow the format of other trace events to produce a pretty name for
install events (as the last component of the install script directory)
and a slightly prettier name for custom events (still limited by the
nature of custom targets).
2025-09-04 11:58:40 -04:00
Stephen Kennedy
5723e65215 Unity: Add a target property to control generated filenames
If not set default to `unity_` as before.

Closes: #26927
2025-09-04 09:31:01 -04:00
Brad King
89f4471c4c Merge topic 'fbuild_additional_props'
a8e64742aa FASTBuild: allow disabling of caching / distribution

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11125
2025-09-04 09:19:30 -04:00
Brad King
d75c507d0a Merge topic 'instrumentation-trace'
8d04c4d741 Experimental: Update the Instrumentation UUID
bf52fbfbc4 instrumentation: Add Google trace output
b6dcbc4387 Tests/RunCMake/Instrumentation: Improve formatting
27bc7d5782 Tests/RunCMake/Instrumentation: Factor out common JSON logic

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !11124
2025-09-04 09:15:59 -04:00
Brad King
69edf00b57 Merge topic 'fastbuild-instrumentation'
903d35353f instrumentation: Update tests and documentation for FASTBuild support
bd24854d56 FASTBuild: Expand TargetLabels and Config for Link Commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Eduard Voronkin <edward.voronkin@gmail.com>
Merge-request: !11135
2025-09-04 09:13:00 -04:00
Kitware Robot
38904e285b CMake Nightly Date Stamp 2025-09-04 00:05:11 -04:00