Commit Graph
3164 Commits
Author SHA1 Message Date
Brad King 6355164f10 Merge topic 'install-default-component-from-project'
accabeb272 install: Add option to use project name as default component

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11811
2026-03-18 09:40:11 -04:00
Brad King 942ba51eed Merge topic 'preset-file-dir'
3c314349d5 presets: Evaluate `fileDir` macro ahead of schedule
e9abf0c7c8 presets: Allow macro expansion without a graph object
9c1931af44 presets: De-duplicate field inheritance

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11741
2026-03-18 09:36:23 -04:00
Robert Maynard accabeb272 install: Add option to use project name as default component
Teach `CMAKE_INSTALL_DEFAULT_COMPONENT_NAME` to accept a special
`<PROJECT_NAME>` placeholder.

Fixes: #27682
2026-03-17 10:33:44 -04:00
Brad King 20de3962f5 Merge topic 'ctest-passthrough-args'
b3980bf703 ctest: Add support for forwarding arguments to tests via --

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !11789
2026-03-17 09:20:59 -04:00
Brad King 88c6815f7e Merge topic 'ExternalData-state-dir'
079c86e0a4 ExternalData: Add relocatable state metadata

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11814
2026-03-17 09:15:02 -04:00
Tyler Yankee 3c314349d5 presets: Evaluate fileDir macro ahead of schedule
Introduce a mechanism for "immediate" evaluation of preset macros as
they are defined in the current JSON file, rather than deferring until
after the preset graph is merged. This allows `${fileDir}` to always
be expanded with the path to the directory containing the file which
contains the macro, instead of the path being dependent on the preset
in which the macro is used (which could be defined and inherited from
elsewhere).

Bump to presets version 12 to provide backwards compatibility with the
old behavior.

Fixes: #26982
Relates: #27329, #27639
2026-03-17 08:16:50 -04:00
Brad King 0cbc778856 Merge topic 'ExternalProject-git-clone-retry'
0126cd7219 ExternalProject: Add options to configure git clone retries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11754
2026-03-16 09:38:29 -04:00
Arkadiusz Lachowicz 079c86e0a4 ExternalData: Add relocatable state metadata
Issue: #27689
2026-03-15 19:27:16 +01:00
Jérémie Dumas 0126cd7219 ExternalProject: Add options to configure git clone retries
Fixes: #24410
2026-03-15 09:06:47 -04:00
Mickaël Germain b3980bf703 ctest: Add support for forwarding arguments to tests via --
Add support for `ctest [options] -- <args>` to forward extra arguments
to every executed test's command line. Arguments after `--` are appended
after each test's own arguments in the order given.

This enables passing options to test frameworks like Google Test or
doctest without needing per-test ARGS properties:

    ctest -R my_test -- --gtest_filter=SomeTest.Case
    ctest --verbose -- --success

An error is raised if `--` is combined with `--build-and-test`, `-S`,
or `-D`/`-T`/`-M` modes, which have their own argument forwarding.
A bare `--` with no following arguments is silently ignored.

Fixes: #20470
2026-03-13 16:21:02 -07:00
Daniel Pfeifer d7ab03d093 execute_process: Add options for modified environment 2026-03-12 19:17:24 +01:00
Brad King 942ec6308c Merge topic 'cmake-E-tar-encoding'
0c355dfcf7 tar: Use UTF-8 as a default encoding
21eb53e9eb tar: Add option to specify the encoding of archive pathnames
0435b76095 libarchive: Build with iconv to handle entry path encoding
24cb39e081 libarchive: Suppress upstream preference for MacPorts over macOS SDK
e07d0dacc9 cmArchiveWrite: Comment how we pass an entry pathname to libarchive
95040f37ed Tests/RunCMake/CommandLineTar: Improve formatting of error messages
e5c6c121c6 libarchive: Backport "Fix crash on failure to convert WCS/UTF-8 pathname"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11601
2026-03-12 13:58:40 -04:00
Brad King 647b075be0 Merge topic 'genex-TARGET_OBJECTS-SOURCE_FILES'
987e0af366 GenEx: Add `$<TARGET_OBJECTS:...>` option to filter on source files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11782
2026-03-11 13:17:00 -04:00
Brad King 911f44901b Merge topic 'verify-header-sets-objc'
da42e4ed20 cmGeneratorTarget: Add OBJC/OBJCXX support to header set verification
f974ef0f75 cmGeneratorTarget: Refactor header set verification for C and CXX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11774
2026-03-11 13:08:40 -04:00
Alex Overchenko 21eb53e9eb tar: Add option to specify the encoding of archive pathnames
Use OEM by default for backward compatibility

Fixes: #26903
2026-03-11 08:44:44 +03:00
Kyle Edwards 987e0af366 GenEx: Add $<TARGET_OBJECTS:...> option to filter on source files
Fixes: #27675
2026-03-10 10:51:43 -04:00
Mickaël Germain da42e4ed20 cmGeneratorTarget: Add OBJC/OBJCXX support to header set verification
Extend header set verification to support Objective-C and Objective-C++.
The supported-language table grows to {"C", "CXX", "OBJC", "OBJCXX"}
and the lattice join is updated so OBJCXX is chosen when both CXX and
OBJC sources are present. GenerateStubForLanguage emits .m/.mm stubs
and the relevant OBJC/OBJCXX standard properties are copied to the
verification target.

Add OBJC/OBJCXX test cases conditioned on CMake_TEST_OBJC, isolated in
dedicated project files to avoid affecting language inference for
unrelated targets. Update property documentation and add a release note.
2026-03-10 09:22:28 -04:00
Robert Maynard bd605ba9e6 cmake --install: Support multiple --components
Issue: #25178
2026-03-09 13:47:58 -04:00
Brad King e85fc58f4d Merge topic 'ctest-error-exit'
8dbb7f65f9 ctest: Exit 1 when argc == 1 and no input file exists
fa7c993ef9 Help: Document plain `ctest` command-line signature and exit code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !11743
2026-03-03 09:32:27 -05:00
Sertonix 8dbb7f65f9 ctest: Exit 1 when argc == 1 and no input file exists
Fixes: #26759
2026-03-02 12:20:08 -05:00
Marc Chevrier 63775fe60f FILE_SET: add the support of properties for file set inspection 2026-02-28 13:46:57 +01:00
Brad King c96ae62157 Merge topic 'cmake-E-copy-t-flag'
16b8a1ba2a cmake -E copy_directory*: Add -t argument support
29dcbe4169 cmake -E copy_if_*: Add -t argument support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11693
2026-02-25 09:15:30 -05:00
Alex Reinking 16b8a1ba2a cmake -E copy_directory*: Add -t argument support
Fixes: #24568
2026-02-24 13:38:13 -05:00
Alex Reinking 29dcbe4169 cmake -E copy_if_*: Add -t argument support
Issue: #24568
2026-02-24 13:38:07 -05:00
Máté Ferenc Nagy-Egri e06169bdd0 GoogleTest: Add LIST_SEPARATOR for properties 2026-02-23 18:04:51 +01:00
Brad King da1979280f Begin post-4.3 development 2026-02-17 14:27:25 -05:00
Brad King 49fb4a3695 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2026-02-17 14:20:31 -05:00
Brad King 0454ef4764 Help: Consolidate 4.3 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/4.3.rst`.
2026-02-17 13:31:16 -05:00
Ivan Desiatov 781754f505 CPack/WiX: Add support for perUser install scope
This allows one to create installers that install to `AppDataLocal`
and do not require admin privileges to execute.

Fixes: #24939
2026-02-13 10:57:39 -05:00
Brad King b02ae60a76 cmake_host_system_information: Add query for the locale's charset
Issue: #27562
2026-02-11 11:56:05 -05:00
Vito Gamberini 70c1f0f43d Experimental: Remove import std experimental gate
Fixes: #27571
2026-02-07 09:03:43 -05:00
Brad King d979f3df74 Merge topic 'fileapi-interface-sources'
b8af7837b3 fileapi: Add interfaceSources to the target codemodel replies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11655
2026-02-06 10:37:20 -05:00
Martin Duffy 95dc40d8a8 Experimental: Remove Instrumentation experimental gating
Fixes: #27348
2026-02-05 14:05:42 -05:00
Brad King 37614c8f79 Merge topic 'cmd-version-json'
39a3915022 cmd: implement json version output
89fd18b48e nghttp2: provide common cm3p headers
31bb76eafd Utilities: add lost openssl dependency
26cdd956ac kwiml: provide common cm3p version header
4952dc9d4a Merge branch 'upstream-KWIML' into cmd-version-json
b41743ddcb KWIML 2025-08-05 (2eae04db)
25c05b0bac kwiml: Update script to get version header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11630
2026-02-05 13:11:08 -05:00
Craig Scott b8af7837b3 fileapi: Add interfaceSources to the target codemodel replies
Fixes: #27489
2026-02-05 21:20:48 +09:00
Brad King 9e5d338dd9 Merge topic 'lang-link-flags'
98f9874703 cmake: Add per-language link flags for all target types
63858fc3e0 Tests: Factor out LINKER: reference file generation
399288871e cmLocalGenerator: Factor out link flag parsing
82913923cd try_compile: Reflow comments per `clang-format`
7b4b556e2d Help: Fix description of `CMAKE_*_LINKER_FLAGS` variables
29b1d0baa9 Help/try_compile: Remove extraneous `versionadded` policy note
5ecee0db7b cmLocalGenerator: De-duplicate static linker flags lookup
bc1847c70b cmLocalGenerator: De-duplicate target property link flags lookup
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11611
2026-02-03 11:22:36 -05:00
AJIOB 39a3915022 cmd: implement json version output 2026-02-03 09:34:23 +03:00
Tyler YankeeandBrad King 98f9874703 cmake: Add per-language link flags for all target types
Previously, `CMAKE_<LANG>_LINK_FLAGS` was an undocumented variable used
for linking executables only. Re-spell that variable mirroring the
existing spellings for shared and module libraries, and add policy
CMP0210 to preserve compatibility.

Then, repurpose `CMAKE_<LANG>_LINK_FLAGS` to provide a variable to be
used for per-language link flags for all target types, along with a
per-configuration variant. These are added to the `<LINK_FLAGS>` rule
placeholder in the generators.

Fixes: #21934
Relates: #25620

Co-authored-by: Brad King <brad.king@kitware.com>
2026-01-31 19:37:09 -05:00
Brad King 4efe6d3a18 Merge topic 'cps-modules'
3771471310 CPS: Support C++20 modules
b080922be6 cmake-cxxmodules: Note config limitations
e4cbf1c153 cmCxxModuleMetadata: Update PopulateTarget

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11633
2026-01-30 11:35:19 -05:00
Vito Gamberini 3771471310 CPS: Support C++20 modules
Modify the PackageInfo exporters and commands to support C++20 modules
via the collator-generated module manifest.

Fixes #27548
2026-01-29 13:26:35 -05:00
Marc Chevrier 209d86c5fe GenEx FILE_SET_PROPERTY 2026-01-28 16:57:35 +01:00
Marc Chevrier 4113364c49 FILE_SET: properties management
Fixes: #27307
2026-01-27 18:15:26 +01:00
Brad King b6a60d9ebe Merge topic 'FindRuby-components'
c5e7cb691c FindRuby: Add support for interpreter and development components
dc8e05c4d2 FindRuby: Simplify finding the Ruby library - Ruby already knows!
b192f706aa FindRuby: Remove broken, untested and unmaintained cross-compiling support
ee75b3e7b4 FindRuby: Clean up variables read from Ruby
ba37066185 FindRuby: Versions are strings not paths.
b2bd6b221c FindRuby: Enclose Ruby executable in quotes
752d5cace6 FindRuby: Fix incorrect code and versions
deb67fa837 FindRuby: Remove duplicate word
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Osyotr <zhenchik35026@gmail.com>
Merge-request: !11544
2026-01-24 07:58:49 -05:00
Charlie Savage c5e7cb691c FindRuby: Add support for interpreter and development components 2026-01-23 10:35:43 -05:00
Kyle Edwards a4d9a20c49 Merge topic 'bin2c'
3dd49d857a ci: Enable bin2c large file test on some builds
3a893806bb cmake -E: Add bin2c mode
8cca26e562 cm::optional: Suppress GCC -Wmaybe-uninitialized false positive

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !11536
2026-01-23 10:05:58 -05:00
Kyle Edwards 3a893806bb cmake -E: Add bin2c mode
Run Tests/RunCMake/cmake-E-bin2c/generate_files.sh to regenerate the
following files:

- Tests/RunCMake/cmake-E-bin2c/long.c.txt
- Tests/RunCMake/cmake-E-bin2c/long_signed.c.txt
- Tests/RunCMake/cmake-E-bin2c/long_decimal.c.txt
- Tests/RunCMake/cmake-E-bin2c/long_signed_decimal.c.txt
- Tests/RunCMake/cmake-E-bin2c/hashes.cmake

Run it with --very-long to regenerate the following additional files:

- Tests/RunCMake/cmake-E-bin2c/very_long_params.cmake
2026-01-22 14:33:17 -05:00
Marc Chevrier e2a38a3990 GenEx SOURCE_PROPERTY
This feature is required for the support of the future feature of
pattern rules (see #27383).

But it is also a valuable addition in the context of custom command and target.
2026-01-21 16:03:30 +01:00
Paulius Velesko 47c3e55d4a HIP: Add support for SPIR-V platform
Add `spirv` as a known value for `CMAKE_HIP_PLATFORM`.
Default `CMAKE_HIP_ARCHITECTURES` to `OFF` for `spirv`.

Fixes: #27410
2026-01-20 13:18:18 -05:00
Brad King 59c3422974 Merge topic 'pvs-analyze'
ef12ef1bd6 pvs-studio: Add support for linting with PVS-Studio
8f722e0fac cmList: Expose container reserve
5d1f269658 cmcmd: Allow passing object file to co_compile commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Overchenko <aleksandr9809@gmail.com>
Merge-request: !11323
2026-01-19 09:30:58 -05:00
Brad King 18c98682f5 Merge topic 'verify-private-header-sets'
b61637f90f File sets: Add verification of private file sets
61df2e15a2 Help: Verification target also sets CXX_SCAN_FOR_MODULES to false
909b54023a File sets: Specify verify file set target names in one place
20219414c3 File sets: Always verify interface files sets of executable targets
c7a1d5ee58 Tests: Rename VerifyHeaderSets tests to VerifyInterfaceHeaderSets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11565
2026-01-19 09:27:59 -05:00