Commit Graph
39636 Commits
Author SHA1 Message Date
Brad King 850ca80ce8 Merge topic 'ctest_submit_parts'
a798a84b22 ctest: add new variable CTEST_SUBMIT_PARTS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !12135
2026-06-04 10:08:20 -04:00
Brad King b11c54bb0c Merge topic 'discover-tests-googletest'
a324c2bb58 GoogleTest: Base on builtin command discover_tests
6b6e9fbc32 GoogleTest: Move test list parsing to separate file
1da072eacb discover_tests: Add TEST_LIST to CTest command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11815
2026-06-04 09:54:33 -04:00
Brad King 2d4a0ef0fe Merge topic 'GenEx-SOURCE_PROPERTY-evaluate-content'
699f4d61a5 GenEx SOURCE_PROPERTY: fix evaluation of generation expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !12134
2026-06-04 09:52:45 -04:00
Brad King 6e995093d9 Merge topic 'fix-build-tree-prefix-leak'
fd660330e0 find_*: Avoid searching prefix derived from CMake's own source tree

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12122
2026-06-04 09:51:29 -04:00
Kitware Robot 02f124275c CMake Nightly Date Stamp 2026-06-04 00:06:46 -04:00
Zack Galbreath a798a84b22 ctest: add new variable CTEST_SUBMIT_PARTS
This new variable allows dashboard client users to specify what parts
to submit.
2026-06-03 10:45:42 -04:00
Daksh Mamodiya fd660330e0 find_*: Avoid searching prefix derived from CMake's own source tree
When `cmake` is running from its own build tree, `CMAKE_ROOT` is in
the source tree and should not be used to derive a search prefix.

Fixes: #27853
2026-06-03 10:11:21 -04:00
Brad King 5636aa7740 Merge topic 'cxx-module-usage-effects'
2049419196 c++modules: document BMI compatibility changes
bfba7f68af c++modules: Correctly calculate and apply usage effects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12116
2026-06-03 10:01:51 -04:00
Brad King 3b85f214d2 Merge topic 'instrumentation-data-version-minor'
f5a0f6478e Merge branch 'backport-instrumentation-data-version-minor' into instrumentation-data-version-minor
dcf146c34d instrumentation: Revise Data Version format
df36317176 instrumentation: Revise Data Version format

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12117
2026-06-03 09:51:48 -04:00
Marc Chevrier 699f4d61a5 GenEx SOURCE_PROPERTY: fix evaluation of generation expressions 2026-06-03 15:44:16 +02:00
Kitware Robot 80f1d73512 CMake Nightly Date Stamp 2026-06-03 00:05:42 -04:00
Vito Gamberini bfba7f68af c++modules: Correctly calculate and apply usage effects
Usage effects describe the relationship between a provider and a
consumer of C++ module interface units. They encompass the flags and
features used to construct BMIs for those units. If the usage effects of
a provider and consumer match, then the provider's BMI may be reused
as-is. If they do not match, then a synthetic target describing the
interface units with the consumer's usage effects applied must be
created.

This commit makes three major changes to how usage effects are reified
in CMake. The first is simple, usage effect hashes now use compile
options and features as the input to their hash instead of the consumer
name. A simply warning flag filter is also applied, mostly to
demonstrate the mechanism. This is the "correct calculation" for usage
effects.

The second is more impactful, usage effects now entirely replace the
compile options of providers with those of consumers if unmatched.
Compile definitions, includes, and links remain unchanged. This is
necessary to ensure successful builds, but is a tricky semantic change.

The third is mostly source-facing, the discovery model for CxxModule
synthetic targets is no longer the global target namespace. Instead,
non-synthetic targets manage their synthetic derivatives. Every target
maintains a usage effect-keyed cache of synthetic targets. When
determining if a synthetic target is necessary, a given provider checks
for compatibility with itself, then for presence in the cache, and if
the cache misses a new synthetic target is created.

Fixes: #27597
2026-06-02 15:41:40 -04:00
Daniel Pfeifer 1da072eacb discover_tests: Add TEST_LIST to CTest command 2026-06-02 21:05:04 +02:00
Brad King bdad2cbd97 Merge topic 'parse-arguments-argn'
97c36916d9 cmake_parse_arguments: Add PARSE_ARGN mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12131
2026-06-02 09:26:04 -04:00
Brad King db0a8ee741 Merge topic 'ctest_cli_initial_configure'
9a0010eef2 ctest: add --source-dir argument to enable initial configure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12121
2026-06-02 09:22:14 -04:00
Brad King 4bcb0a1dfa Merge topic 'fix-cmp0211-doc'
228795753f FILE_SET: Fix CMP0211-related documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12119
2026-06-02 09:19:40 -04:00
Brad King fe0537fa03 Merge topic 'SKIP_PRECOMPILE_HEADERS-fileset-property'
c06d409f12 FILE_SET: add SKIP_PRECOMPILE_HEADERS property support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12129
2026-06-02 09:17:53 -04:00
Brad King f4c858d328 Merge topic 'multi_export_sbom'
2900aa2911 SBOM: Update experimental UUID
273fc4cc49 SBOM: Support multi export set SBOMs
9669829573 Install: Refactor ResolveTargetsInGeneratorExpression
7c31cbf9ae SBOM: Handle PACKAGE_URL argument

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12080
2026-06-02 09:15:40 -04:00
Brad King af125c28f3 Merge topic 'builddb-source-properties-support'
831566997b Build database: add missing source file properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12128
2026-06-02 09:12:11 -04:00
Brad King c07ac2b941 Merge topic 'macro-argument-escape'
9d2e85373a macro: Add policy to preserve backslashes in arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11734
2026-06-02 09:06:21 -04:00
Martin Duffy dcf146c34d instrumentation: Revise Data Version format
Give data version the new format <major>.<minor>, so that
the version can be incremented with the introduction of new
features without bumping the major version.

Add support for loading instrumentation JSON queries of unknown
data versions without error.

Issue: #27833
2026-06-02 08:55:20 -04:00
Kitware Robot bb8e72e667 CMake Nightly Date Stamp 2026-06-02 00:05:24 -04:00
Arha Gatram 97c36916d9 cmake_parse_arguments: Add PARSE_ARGN mode
Introduce a mode similar to `PARSE_ARGV` that avoids needing
to specify the number of normal function arguments.

Closes: #25376
2026-06-01 18:06:25 -04:00
Zack Galbreath 9a0010eef2 ctest: add --source-dir argument to enable initial configure
Add the --source-dir argument to ctest to allow it to perform an initial
configuration step for an empty binary directory when operating in
dashboard client mode.
2026-06-01 14:11:46 -04:00
Marc Chevrier c06d409f12 FILE_SET: add SKIP_PRECOMPILE_HEADERS property support 2026-06-01 18:39:23 +02:00
Tom Osika 2900aa2911 SBOM: Update experimental UUID 2026-06-01 12:27:13 -04:00
Tom Osika 273fc4cc49 SBOM: Support multi export set SBOMs 2026-06-01 12:27:13 -04:00
Brad King 61d313a541 Merge topic 'ctest_honor_all_definitions'
7dc39e7221 ctest: prioritize presets over existing DartConfiguration.tcl commands
ba768963e5 ctest: honor all -D definitions in command-line dashboard client mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12120
2026-06-01 10:57:15 -04:00
Marc Chevrier 831566997b Build database: add missing source file properties 2026-06-01 16:53:08 +02:00
Brad King 53198548ea Merge topic 'builddb-fileset-properties-support'
b81321f9db Build database: add file set flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12111
2026-06-01 10:50:01 -04:00
Kitware Robot dac8665889 CMake Nightly Date Stamp 2026-06-01 00:05:54 -04:00
Alex Reinking 9d2e85373a macro: Add policy to preserve backslashes in arguments
Preserve backslashes in arguments passed to macros by re-escaping
them before substituting in the macro body, where they will be
parsed again.

Fixes: #19281, #22157, #23641, #25803, #27645, #20891
2026-05-31 14:36:15 -04:00
Kitware Robot 85e2c275bd CMake Nightly Date Stamp 2026-05-31 00:05:11 -04:00
Kitware Robot 936afa9823 CMake Nightly Date Stamp 2026-05-30 00:05:05 -04:00
Zack Galbreath 7dc39e7221 ctest: prioritize presets over existing DartConfiguration.tcl commands
CMake writes ConfigureCommand and MakeCommand entries into
DartConfiguration.tcl when configuring a project that uses the CTest module.

These values prevented users from being able to use configure/build presets
in dashboard client mode from a pre-configured build directory.

This commit updates ctest_configure() and ctest_build() to ignore
CTEST_CONFIGURE_COMMAND / CTEST_BUILD_COMMAND when a preset is specified.
This allows the requested preset to be honored.
2026-05-29 11:40:47 -04:00
Zack Galbreath ba768963e5 ctest: honor all -D definitions in command-line dashboard client mode
Commit 63b6e7d785 (ctest: allow dashboard clients to specify presets via
variables, 2026-05-26) added support for the CTEST_PRESET family of
variables that provide users with an additional method of defining what
preset to use (if any) for dashboard client steps.

However, these variables were not being honored properly when defined
on the command-line with ctest -D. This was caused by the fact that these
variables do not have a corresponding CTest configuration setting.
Instead, they are read directly using cmMakefile::GetDefinition().

To fix this, we now inject all variables defined with ctest -D into the
cmMakefile used by CTest in ProcessSteps(). This more closely matches the
existing behavior of cmCTestScriptHandler (ctest -S mode).

In addition to fixing the newly added CTEST_PRESET variables, this also
allow users to properly define CTEST_BUILD_CONFIGURATION and
CTEST_CONFIGURATION_TYPE from the command-line.
2026-05-29 11:40:47 -04:00
Brad King 4ce7fd4a04 Merge topic 'module-case-mismatch'
dadbb71492 include/find_package: Warn on case-mismatched module names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12094
2026-05-29 09:31:43 -04:00
Brad King 3cbe1d5a91 Merge topic 'cache-doc-lookup'
7fdf315ba3 cmake: Populate help string from documentation table for -D entries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12092
2026-05-29 09:25:13 -04:00
Marc Chevrier b81321f9db Build database: add file set flags 2026-05-29 14:35:10 +02:00
Kitware Robot 43b1af11a1 CMake Nightly Date Stamp 2026-05-29 00:05:47 -04:00
Matthew Woehlke 228795753f FILE_SET: Fix CMP0211-related documentation
Commit 4f120beea9 (FILE_SET: relax file uniqueness for HEADERS type,
2026-05-10) relaxed the restriction on file uniqueness in file sets, but
did not correctly update all instances of the documentation. Change the
wording to be a bit clearer and update all instances.
2026-05-28 16:53:01 -04:00
Brad King 4d945a6491 Merge topic 'tar-xf-no-space'
359ad8469d tar: Treat 'no space left on device' as an error instead of a warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !12095
2026-05-28 09:59:07 -04:00
Brad King ef11aa9bee Merge topic 'if-invalid'
240481490c if: Diagnose invalid argument in parentheses

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12114
2026-05-28 09:57:04 -04:00
Brad King 178977176d Merge topic 'xcode-embed-multi-target-fix'
5ff6ac07e8 Xcode: Fix target-name embedding overriding code-sign attributes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12102
2026-05-28 09:54:32 -04:00
Brad King 0e6299c37f Merge topic 'ctest_preset_args_cli'
63b6e7d785 ctest: allow dashboard clients to specify presets via variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12109
2026-05-28 09:50:49 -04:00
Brad King e65ed3996a Merge topic 'file-download-no-ssl-fix'
18d5daa7f3 file(DOWNLOAD/UPLOAD): Restore support for curl built without a TLS backend

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12104
2026-05-28 09:38:42 -04:00
Daksh Mamodiya 7fdf315ba3 cmake: Populate help string from documentation table for -D entries
When a built-in cache variable is set via `-D <var>=<value>` with no
help text supplied, populate `HELPSTRING` from the built-in
documentation table (sourced from `Help/variable/*.rst` and the
per-language pattern manuals).  Project-defined and unknown variables
continue to receive the legacy "No help, variable specified on the
command line." sentinel.

The cache entry's type and value are left untouched: type stays
`UNINITIALIZED` for bare `-D` and an explicit `-D <var>:TYPE=<value>`
is honored as before.  The `cmCacheManager::LoadCache` path is not
modified, so reload of existing caches is a fixed point.

Fixes: #27830
2026-05-28 09:25:41 -04:00
Richard dadbb71492 include/find_package: Warn on case-mismatched module names
Detect when the requested module name differs in case from the module
filename on disk.  Emit an author warning on Windows and Apple
platforms, where case-insensitive lookup can hide portability problems
on case-sensitive filesystems.

Fixes: #27811
2026-05-28 08:57:59 -04:00
Kitware Robot 3c7c3cc3b3 CMake Nightly Date Stamp 2026-05-28 00:05:28 -04:00
Daksh Mamodiya 18d5daa7f3 file(DOWNLOAD/UPLOAD): Restore support for curl built without a TLS backend
Since commit 38390245a2 (ctest: Require minimum TLS 1.2 by default,
2024-09-23, v3.31.0-rc1~47^2), our TLS-1.2 default fails with a curl
built without any TLS backend, causing even `file://` and `http://`
URLs to fail.  Teach CMake to recognize both ways libcurl may report
that it was built without TLS support.

Fixes: #27849
2026-05-27 13:59:01 -04:00