Commit Graph
9500 Commits
Author SHA1 Message Date
Brad King 90cbdcda78 Help: Make CMAKE_MSVC_RUNTIME_LIBRARY empty-string value more visible
List it alongside the other values instead of in prose.

Closes: #27829
2026-05-19 10:32:32 -04:00
Brad King 485b155cb9 Merge topic 'swift-pdb'
404f6bac3c Swift: support PDB emission with Swift

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12064
2026-05-19 09:04:41 -04:00
Brad King 0241f52e5c Merge topic 'pellesc-doc'
090e754a34 PellesC: Document support for this compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12068
2026-05-19 08:59:39 -04:00
Brad King afad360df9 Merge topic 'cmake-more-diagnostics'
028d3183ad Diagnostics: Add POLICY, EXPERIMENTAL
92e0ca9046 Diagnostics: Show author message for all descendants

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12034
2026-05-16 09:53:27 -04:00
Saleem Abdulrasool 404f6bac3c Swift: support PDB emission with Swift
Swift supports CodeView/PDB for Windows (with active development ongoing
to make it the default). It is currently usable but does not have the
same fidelity as DWARF, but can be sufficient for many use cases. The
user is able to control this via flags. Wire up the necessary support to
allow `TARGET_PDB_FILE` to be used with Swift/Swift-only targets.
2026-05-16 09:05:46 -04:00
Daniele E. Domenichelli 9bd3346655 CMakePackageConfigHelpers: add more version compatibility modes
Add `SamePatchVersion`, `SameFullVersion`, and `SemanticVersion`
support.

Document `ExactVersion` as deprecated in favor of the clearer
`SamePatchVersion`/`SameFullVersion` names.

Closes: #18060
2026-05-15 13:51:11 -04:00
Brad King 433725108d Merge topic 'tutorial-foo-capitalization'
077c43747d Tutorial: Fix typo in prose about matching "Foo"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12065
2026-05-15 12:13:46 -04:00
Brad KingandSerguei E. Leontiev 090e754a34 PellesC: Document support for this compiler
This was left out of commit b7a5f2732d (PellesC: Add minimal support for
this C compiler, 2026-04-03) because the implementation was not usable
in general.  It is now.

Closes: #21536
Co-authored-by: Serguei E. Leontiev <leo@sai.msu.ru>
2026-05-15 12:06:46 -04:00
Brad King 7c526eebcf Merge topic 'tutorial-xref'
17540b8f47 Tutorial: Fix Sphinx cross-reference to preset installDir field

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12067
2026-05-15 11:51:23 -04:00
Brad King 17540b8f47 Tutorial: Fix Sphinx cross-reference to preset installDir field
Fix a logical conflict between commit 653356bed0 (Tutorial: Describe
install prefix, 2026-05-14) and commit f26e9fcbae (Help: Generate
presets JSON schema, documentation, 2026-04-08).
2026-05-15 11:44:34 -04:00
Bo Rydberg 077c43747d Tutorial: Fix typo in prose about matching "Foo" 2026-05-15 11:24:29 -04:00
Brad King 08e5ffbeac Merge topic 'fileset-SKIP_UNITY_BUILD_INCLUSION'
5f7a7aa263 FILE_SET: add SKIP_UNITY_BUILD_INCLUSION property support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12040
2026-05-15 10:18:03 -04:00
Brad King 0ab34febed Merge topic 'tutorial-misc-fixes'
4b093ae12e Tutorial: Move multi-config install note to the first exercise
653356bed0 Tutorial: Describe install prefix
fdc4511f18 Tutorial: Fix some typos

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vito Gamberini <vito.gamberini@kitware.com>
Merge-request: !12062
2026-05-15 10:07:27 -04:00
Matthew Woehlke 028d3183ad Diagnostics: Add POLICY, EXPERIMENTAL
Add new diagnostic categories CMD_POLICY and CMD_EXPERIMENTAL, both as
children of CMD_AUTHOR. Use the former when issuing policy warnings. Use
the latter when issuing experimental feature warnings.
2026-05-15 09:57:23 -04:00
Tyler Yankee 4b093ae12e Tutorial: Move multi-config install note to the first exercise
The context is needed when running all exercises in this step.

Revise both this note and its mirror for `ctest` in Step 7 to
cross-reference the relevant flags.
2026-05-14 18:22:14 -04:00
Tyler Yankee 653356bed0 Tutorial: Describe install prefix
Give a brief overview of what the install prefix is and the various
ways it can be set.
2026-05-14 18:11:41 -04:00
Tyler Yankee fdc4511f18 Tutorial: Fix some typos 2026-05-14 17:54:34 -04:00
Marc Chevrier 5f7a7aa263 FILE_SET: add SKIP_UNITY_BUILD_INCLUSION property support 2026-05-14 10:55:35 -04:00
Brad King 84a843cfb6 Merge topic 'file-api-many-file-sets'
9f4cf1cef7 fileAPI: Report full backtraces for sources in multiple file sets
3d249d2aa9 fileAPI: Support files added to multiple file sets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12009
2026-05-14 10:40:22 -04:00
Brad King 08bf1b6985 Merge topic 'ctest_commands_presets_file'
08dc82ceb3 ctest: add PRESETS_FILE option to CTest commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12042
2026-05-14 08:53:25 -04:00
Brad King 011fc8be63 Merge topic 'feature/list-functor-no-macro'
96c9a9c67d list: Reject macros as APPLY/PREDICATE/COMPARATOR arguments
08288eb14a list: Extract RequireFunction helper for command validation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11997
2026-05-14 08:45:19 -04:00
Brad King 7d5d05c2a7 Merge topic 'clarify-cmp0218'
db4eb6fb91 CMP0218: Clarify when policy applies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12051
2026-05-13 13:35:34 -04:00
Brad King d7257109e7 Merge topic 'ctest-update-version-options'
585e0d5878 ctest_update: Add options VERSION_ONLY and VERSION_OVERRIDE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12038
2026-05-13 13:28:21 -04:00
Tyler Yankee 9f4cf1cef7 fileAPI: Report full backtraces for sources in multiple file sets
Previously, if a single source file was added to multiple file sets via
multiple `target_sources` calls, only the first call originally adding
it to the target was stored in the backtrace graph and referenced by
index in the singular "backtrace" field.

Add a "backtraces" field expanding this to cover all command
invocations which associate the given source file with that target.
Preserve the original "backtrace" field for compatibility. Update
spellings in the test suite to check against both fields.

Issue: #27035
2026-05-12 16:45:13 -04:00
Tyler Yankee 3d249d2aa9 fileAPI: Support files added to multiple file sets
The `fileSetIndex` field of target sources replies is incomplete, as a
single source file can be added to arbitrarily many file sets. Add a
`fileSetIndexes` field to report all file sets to which a source
belongs, and preserve `fileSetIndex` for compatibility as the index of
the most recent addition.

Tweak the test suite to use the plural spelling only in expected JSON
snippets and verify that the singular `fileSetIndex` is always the last
element of the new list. (Note that remaining occurrences of the
singular spelling correspond to "installers" objects, which is entirely
different.)

Fixes: #27035
2026-05-12 16:45:12 -04:00
Zack Galbreath 08dc82ceb3 ctest: add PRESETS_FILE option to CTest commands
Allow CTest script authors to use presets from arbitrary files.
2026-05-12 15:49:39 -04:00
Mickaël Germain 96c9a9c67d list: Reject macros as APPLY/PREDICATE/COMPARATOR arguments
Fixes: #27781
2026-05-12 12:30:43 -07:00
Matthew Woehlke db4eb6fb91 CMP0218: Clarify when policy applies
Handling of `CMAKE_{WARN,ERROR}_DEPRECATED` in CMake 4.3 is truly
atrocious; some places look at the non-cache values, while others only
care about the `cmMessenger` state (which is synchronized with the cache
values of said variables). For CMP0218, we do not introduce any new
instances of examining the non-cache values. Try to clarify the policy
description to better state which historic diagnostics are affected, and
which are not.
2026-05-12 13:09:30 -04:00
Brad King 05c103d92a Merge topic 'FILE_SET-manage-file-unicity'
4f120beea9 FILE_SET: relax file uniqueness for HEADERS type

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12039
2026-05-12 10:55:07 -04:00
Brad King 47b80d2a8a Merge topic 'cmake-diagnostics-relnotes'
629badc0c8 Diagnostics: Add release notes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12032
2026-05-12 10:39:29 -04:00
Daniel Pfeifer 585e0d5878 ctest_update: Add options VERSION_ONLY and VERSION_OVERRIDE 2026-05-12 13:45:00 +02:00
Matthew Woehlke 629badc0c8 Diagnostics: Add release notes 2026-05-11 14:07:28 -04:00
Brad King 3b24c78ed9 Merge topic 'ctest_test_preset_option'
ef0d2ca6bb ctest: add PRESET option for ctest_test() and ctest_memcheck()
f9c831dad9 ctest: encapsulate loading of options from test preset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12017
2026-05-11 11:12:42 -04:00
Marc Chevrier 4f120beea9 FILE_SET: relax file uniqueness for HEADERS type
Enable to declare in multiple sets headers files.

This complements commit 167e903c15 (FILE_SET: enforce uniqueness of files, 2026-03-06)

Issue: #27035
2026-05-11 10:42:39 +02:00
Brad King e4de3c84ce Merge topic 'doc-exe-result'
c720e2a23d Help: Document execute_process(RESULT_VARIABLE) capture in source code guide

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12028
2026-05-08 07:47:52 -04:00
Brad King 61680b3b44 Merge topic 'cmake-diagnostics-variables'
72e7305c3e Diagnostics: Handle CMAKE_{WARN,ERROR}_DEPRECATED
be057c5a01 cmVariableWatch: Use enum for access type
cba542f32c cmake.cxx: Organize includes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11948
2026-05-08 07:44:05 -04:00
Zack Galbreath ef0d2ca6bb ctest: add PRESET option for ctest_test() and ctest_memcheck()
Allow users to specify a test preset when using CTest dashboard scripts.

Fixes #27630
2026-05-07 22:08:41 -04:00
scivision c720e2a23d Help: Document execute_process(RESULT_VARIABLE) capture in source code guide
Issue: #27782
2026-05-07 13:42:00 -04:00
Matthew Woehlke 72e7305c3e Diagnostics: Handle CMAKE_{WARN,ERROR}_DEPRECATED
Update documentation for aforementioned variables, as their use is
deprecated under the new diagnostic system. Introduce a policy which
reintroduces their use to control specific deprecation diagnostics if
the policy is not NEW.

Note that this means there is NO synchronization between the variables
and the new diagnostic state.
2026-05-07 11:07:27 -04:00
Mickaël Germain 3dc32ac62b list(SORT): Add COMPARATOR option for user-defined comparisons
Allow users to provide a custom comparison function for `list(SORT)`.
The comparator is validated for strict weak ordering at runtime to
produce a clear CMake error rather than a platform-dependent abort.

Closes: #27761
2026-05-06 15:09:06 -04:00
Brad King bfeef792bb Merge topic 'openwatcom-linker-id'
2e549c1df4 CMakeDetermineLinkerId: support the OpenWatcom linker ID

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12012
2026-05-06 10:21:23 -04:00
56b3136f60 fileapi: Add build properties for SOURCES file set type to codemodel
This complements commit 5c5b68f44e (FILE_SET: Add support for the
SOURCES type, 2026-03-12).

Co-Authored-By: Brad King <brad.king@kitware.com>
Co-Authored-By: Tyler Yankee <tyler.yankee@kitware.com>
2026-05-05 19:57:54 -04:00
Ben Boeckel 2e549c1df4 CMakeDetermineLinkerId: support the OpenWatcom linker ID 2026-05-05 12:24:59 -04:00
Brad King ffe0edc092 Merge topic 'list-predicate'
15340d6a96 list(FILTER): Add PREDICATE mode
c7af6e94d8 list(TRANSFORM): Add PREDICATE selector
0f30e0fe1c Help: Fix indentation of list(FILTER) docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11945
2026-05-05 10:58:32 -04:00
Brad King bf3a43e4ad Merge topic 'JOB_POOL_COMPILE-FileSet-property'
8e6eec8125 FILE_SET: add JOB_POOL_COMPILE property support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12005
2026-05-05 10:55:51 -04:00
Brad King 885b588502 Merge topic 'SKIP_LINTING-FileSet-property'
f18ba89862 FILE_SET: add SKIP_LINTING property support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12004
2026-05-05 10:54:37 -04:00
Brad King 0daa41a8fd Merge topic 'presets-error-diagnostics'
654a195d8b presets: Improve error diagnostics
c6e81bf30e Help/presets: Disallow empty env keys in build presets also

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !11987
2026-05-05 10:50:28 -04:00
Brad King 1c4ef7291f Merge topic 'cmake-diagnostics-doc'
95f7f84609 Help: Fix CMD_INSTALL_ABSOLUTE_DESTINATION documentation
a882ec84ec cmDocumentation: Add diagnostics
97d13c3053 Help: Improve diagnostics documentation
3cccce8ca2 Help: Add developer documentation for new diagnostics
ffe4c2a8ff Help: Fix developer documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !11996
2026-05-04 10:32:28 -04:00
Brad King 871c7bcec2 Merge topic 'ctest-llvm-cov'
a7780d1b9c ctest: Add a `CoverageTool` setting to enable integration with `llvm-cov`
870d7d7cbe ctest: Introduce CTestDirectory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11891
2026-05-04 10:21:12 -04:00
Marc Chevrier 8e6eec8125 FILE_SET: add JOB_POOL_COMPILE property support 2026-05-04 11:10:01 +02:00