Commit Graph

8750 Commits

Author SHA1 Message Date
Brad King
616ca13b6a Merge topic 'string-regex-quote'
798cc7010c Tests: Fix regex matching to handle paths with special characters
d94d79a909 string: Add REGEX QUOTE sub-command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11203
2025-09-19 09:32:03 -04:00
Timo Röhling
d94d79a909 string: Add REGEX QUOTE sub-command
Add a command to generate a regular expression that matches an
input string literally by escaping special characters.

Fixes: #18580
2025-09-18 13:25:20 -04:00
Brad King
917f8b217e Merge topic 'fbuild_more_opts'
99839d1158 FASTBuild: expose more options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11180
2025-09-18 09:03:07 -04:00
Brad King
edc4e31179 Merge topic 'tutorial-3.23'
058e7da541 Tutorial: Add redirect pages for removed steps
b2e3e3e30e Tutorial: Rewrite using conventions enabled by CMake 3.23

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11097
2025-09-18 08:46:04 -04:00
Eduard Voronkin
99839d1158 FASTBuild: expose more options
Expose more options for compiler configuration as well as adding unit test
2025-09-17 10:49:27 -07:00
Vito Gamberini
058e7da541 Tutorial: Add redirect pages for removed steps 2025-09-17 11:57:34 -04:00
Vito Gamberini
b2e3e3e30e Tutorial: Rewrite using conventions enabled by CMake 3.23
This is a full re-write of the CMake Tutorial for CMake 3.23, both
the functionality it provides, as well as the modern workflows that
developers use when interfacing with CMake.

Issue: #22663, #23086, #23799, #26053, #26105, #26153, #26914
2025-09-17 11:57:23 -04:00
Brad King
a3ccb05430 Merge topic 'vs-ifx'
eae0a053f5 VS: Default Intel Fortran projects to ifx in VS 18 and above

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11197
2025-09-17 10:11:38 -04:00
Brad King
b62e751369 Merge topic 'patch-FindGit-version'
fe72a5dba2 FindGit: Add Git_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11191
2025-09-17 10:04:31 -04:00
Brad King
eae0a053f5 VS: Default Intel Fortran projects to ifx in VS 18 and above
Intel oneAPI distributions no longer include the `ifort` compiler, but
its Visual Studio Integration defaults to `ifort` if `ifx` is not
explicitly specified in the `.vfproj` file.  We cannot change the
default Fortran compiler in VS 17 and older, but since the VS 18
generator is new, we can establish `ifx` as its default.  This
establishes working defaults on new versions of VS and oneAPI while
retaining existing behavior on older versions.

Issue: #26415
2025-09-16 14:35:33 -04:00
Brad King
a66c325ec1 Merge topic 'patch-FindImageMagick-version'
032e829b23 FindImageMagick: Add ImageMagick_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11187
2025-09-16 09:50:27 -04:00
Brad King
c325904eb1 Merge topic 'vs2026'
47c784ba8a Help: Add release note for Visual Studio 18 2026 generator
cd46d8ec84 Merge branch 'backport-vs2026' into vs2026
3392b371e2 VS: Add Visual Studio 18 2026 generator
7f0883ac04 VS: Remove unused generator code
6f0d245083 VS: Fix `/dynamicdeopt` flag table entry order for v145 toolset
398ce8af72 VS: Remove `/guard:cf` from v145 link flag table
5c9085d876 VS: Remove `/MERGE` from v145 link flag table
fe5c78310c VS: Map the link `/debug` flag for v145 toolset
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11168
2025-09-16 09:00:10 -04:00
Brad King
2337bfc562 Merge topic 'cxxmodules-custom-import-std-metadata-file'
85e536b5eb gitlab-ci: test `CMAKE_CXX_STDLIB_MODULES_JSON` in CI
42621a232b Tests/CXXModules: add a label
2f101b2c8c Tests/CXXModules: support testing with custom stdlib json locations
6c178a4ae3 Tests/RunCMake: add newlines in CXXModules options
2b85541e39 cxximportstd: support setting the `import std` metadata location

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11175
2025-09-15 11:39:52 -04:00
Brad King
47c784ba8a Help: Add release note for Visual Studio 18 2026 generator 2025-09-15 11:34:07 -04:00
Brad King
cd46d8ec84 Merge branch 'backport-vs2026' into vs2026 2025-09-15 11:33:57 -04:00
Brad King
3392b371e2 VS: Add Visual Studio 18 2026 generator
Closes: #27213
2025-09-15 11:31:02 -04:00
Peter Kokot
fe72a5dba2 FindGit: Add Git_VERSION
This deprecates the GIT_VERSION_STRING result variable.

Issue: #27088
Fixes: #26868
2025-09-14 21:08:16 +02:00
Peter Kokot
032e829b23 FindImageMagick: Add ImageMagick_VERSION
This deprecates the ImageMagick_VERSION_STRING result variable.

Additionally, ImageMagick version is now determined by either mogrify
executable (if available), or from the `<magick/version.h>` header.

Issue: #27088
2025-09-13 23:48:05 +02:00
Brad King
fa3387a64f Merge topic 'fbuild_cache_path'
f77628e0af FASTBuild: don't set default cache path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11157
2025-09-12 11:40:40 -04:00
Brad King
434546f710 Merge topic 'typo'
1f99ea95d3 Help: Fix typo in INSTALL_PARALLEL documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Martin Duffy <martin.duffy@kitware.com>
Merge-request: !11170
2025-09-12 11:38:22 -04:00
Brad King
0275e7a65f Merge topic 'doc-matches'
2adfa8b0d4 Help: Fix version added for `CMAKE_MATCH_<n>`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11171
2025-09-12 11:31:01 -04:00
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
Eduard Voronkin
f77628e0af FASTBuild: don't set default cache path
Leave only 2 option to set cache path:
1. CMake variable
2. Environment variable
Update docs to reflect the changes.
2025-09-11 11:25:36 -07:00
Alexander Grund
2adfa8b0d4 Help: Fix version added for CMAKE_MATCH_<n>
This was added in 2.6.0 by commit c1b3484c2d (ENH: store the matches for
paren-delimited subexpression..., 2007-08-21, v2.6.0~1227), not in 3.9.

Only the documentation at this place was added in 3.9, by commit
eb08e1febb (Help: Document CMAKE_MATCH_<n> variables, 2017-04-18,
v3.9.0-rc1~257^2)
2025-09-11 13:09:18 -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
Nils Gladitz
1f99ea95d3 Help: Fix typo in INSTALL_PARALLEL documentation 2025-09-11 12:30:31 +02: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
b768431138 Merge topic 'instrumentation-doc-format'
515be042e2 Help/instrumentation: Improve formatting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11163
2025-09-10 09:56:04 -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
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
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
f8608b020b Merge branch 'release-4.0' 2025-09-08 15:57:28 -04:00
Tyler Yankee
515be042e2 Help/instrumentation: Improve formatting
* Fix bullet points from commit bf52fbfbc4 (instrumentation: Add Google
trace output, 2025-08-28).
* Pluralize "v1 Snippet File" where applicable.
* Wrap long lines to <80 chars where applicable.
2025-09-08 15:57:18 -04:00
Brad King
edd51d646c CMake 4.0.4 2025-09-08 14:51:44 -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
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
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
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
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
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
Daniel Nicoletti
1a6dbcc9ea CPack: Add AppImage generator
This AppImage generator only relies on appimagetool and patchelf.

Closes: #27104
Co-authored-by: Brad King <brad.king@kitware.com>
2025-09-03 18:50:40 -04:00