9959 Commits
Author SHA1 Message Date
Tyler Yankee bc7346c06b Help/if: Fix indentation level of if(DEFINED) 2026-10-29 09:30:34 -04:00
Brad King 2a4177cac1 Merge branch 'release-4.4' into release-4.5 2026-10-27 12:07:33 -04:00
Brad King aa4fae824a CMake 4.4.5 2026-10-27 11:28:05 -04:00
Brad King 5e5619361d Merge branch 'release-4.4' into release-4.5 2026-10-27 11:22:40 -04:00
Brad King fd1c2c2378 Merge branch 'release-4.3' into release-4.4 2026-10-27 11:19:36 -04:00
Brad King 1b053f63d2 CMake 4.3.6 2026-10-27 10:43:57 -04:00
Tyler Yankee f54117c6b1 Ninja: Evaluate generator expressions in CODEGEN outputs
Codegen is supported for Ninja Multi-Config, so CODEGEN should support
generator expressions.
2026-10-25 19:52:43 -04:00
Tyler Yankee 902ec85438 Makefile, Ninja: Fix no-op codegen builds with no CODEGEN
Ninja: Since commit 2d85779126 (Ninja: Account for explicit target
dependencies via CODEGEN, 2026-09-15, v4.5.0-rc1~162^2), a directory's
codegen phony depends on the full build of every add_dependencies
target (which caused their non-CODEGEN commands to run). Instead,
depend only on those targets' CODEGEN outputs, and follow their own
codegen dependencies in turn.

Makefiles: Since commit 197cb419d1 (add_custom_command: Add CODEGEN
support, 2024-05-27, v3.31.0-rc1~394^2), a target's `<target>/codegen`
rule used to depend on `<dep>/all` for every add_dependencies target,
which fully built them. Instead, depend on `<dep>/codegen`, except when
the target has CODEGEN commands of its own, in which case it should
still depend on `<dep>/all` as the commands may need the dependency's
outputs.

Shape up the prior `no-codegen` test case, which wasn't verifying much
of anything.

Fixes: #28205
2026-10-25 19:52:43 -04:00
Tyler Yankee 17de9500e8 Help: Clarify existing CODEGEN behavior 2026-10-25 19:52:20 -04:00
Brad King 009b9df095 Merge topic 'fileapi-target-type-unknown-library' into release-4.5
c9dda1fcfc Help: UNKNOWN_LIBRARY is a valid file API target type

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12704
2026-10-24 11:35:21 -04:00
Craig Scott c9dda1fcfc Help: UNKNOWN_LIBRARY is a valid file API target type
This was missed in the change that added imported targets to the
file API replies, b626843d71 (fileAPI: Output all INTERFACE and
IMPORTED targets, 2025-09-13). The release notes and file API schema
did get the update to mention it, only the description of the `type`
field in the file API docs was missed.
2026-10-24 07:58:07 +11:00
Tyler Yankee 17124b0c85 Help/ctest: Move example job server Makefile to include/
After this, the top-level `manual/` is all `.{1,7}.rst` pages.
2026-10-23 11:29:51 -04:00
Brad King 21957313f5 Merge topic 'custom-rule-callbacks-in-configure-step' into release-4.5
ccc15ac21c Custom rule: ensure user's callbacks are executed during config step

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12689
2026-10-23 09:22:41 -04:00
Brad King e82c001f13 Help: Update link to SARIF specification 2026-10-23 08:27:49 -04:00
Marc Chevrier ccc15ac21c Custom rule: ensure user's callbacks are executed during config step 2026-10-22 23:10:38 +02:00
Tyler Yankee d77dc95f20 Help/ctest: Make --help doc consistent with cmake 2026-10-20 17:19:12 -04:00
Tyler Yankee ee2f2160a1 Help: Add --help-diagnostics documentation
Amend commit a882ec84ec (cmDocumentation: Add diagnostics, 2026-04-30,
v4.4.0-rc1~227^2~1).
2026-10-20 17:16:17 -04:00
Brad King c4c146dc35 Merge topic 'doc-custom-rule-fixes' into release-4.5
dddf9c11a3 Help/add_custom_rule: Fix a few typos

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12670
2026-10-19 13:30:38 -04:00
Tyler Yankee dddf9c11a3 Help/add_custom_rule: Fix a few typos 2026-10-18 07:58:08 -04:00
Marc Chevrier 8c0a8b0b4c custom rule: enhance output file set management
* Add control over output file set BASE_DIRS
* Add patterns for output file set directories
2026-10-16 16:53:19 +02:00
Brad King 89fa36af1a Merge topic 'enable-test_prep-by-default' into release-4.5
4bbdabae74 Ninja, Makefile, FASTBuild: Enable test_prep by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12638
2026-10-15 10:48:14 -04:00
Brad King c40ae91051 Merge topic 'enhance-property-naming-constraints' into release-4.5
e28b381b2e GenEx: Allow : in referenced property names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12648
2026-10-15 10:42:46 -04:00
Matthew Woehlke 4bbdabae74 Ninja, Makefile, FASTBuild: Enable test_prep by default
Enable test preparation targets by default. Add (better named)
`CMAKE_SKIP_TEST_PREP_TARGETS` variable to control generation of the
same, mirroring `CMAKE_SKIP_INSTALL_PREP_TARGETS`. Remove support for
old `CMAKE_TEST_BUILD_DEPENDS` variable. Update and improve
documentation.

This improves consistency between test and install preparation targets.
It also modifies the descriptions of preparation targets in the
documentation of generators which support them to be consistent.
(Previously, each generator described preparation targets in a manner
unique to each generator.)

Fixes: #28050
2026-10-14 16:10:45 -04:00
Marc Chevrier e28b381b2e GenEx: Allow : in referenced property names
Fixes: #28162
2026-10-14 16:58:14 +02:00
Brad King 07ebd37501 Merge topic 'add-dpclang' into release-4.5
c7ab581812 ci: Add job testing DPClang on Linux
4ea5eba8de ci: Add scripts to install DPClang in Linux jobs
21213ae1d9 DPClang: add compiler support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12634
2026-10-14 10:39:39 -04:00
Brad King b341720cbf Merge topic 'file-DIFFERENT-doc' into release-4.5
f030dcf26a Help: Document file(DIFFERENT)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12632
2026-10-14 10:35:25 -04:00
Brad King a774a672ef Merge topic 'fileset-LANGUAGE-property' into release-4.5
e529a41ae5 Extend support of file set LANGUAGE property to custom rules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12637
2026-10-14 09:58:50 -04:00
Daksh Mamodiya f030dcf26a Help: Document file(DIFFERENT)
It has been around since CMake 2.6.3 for generated install scripts but
was never documented.  Added a test for the result too, since nothing
checked it before.

Fixes: #28154
2026-10-14 15:43:31 +02:00
Vito Gamberini 21213ae1d9 DPClang: add compiler support
Fixes: #28157
2026-10-13 14:59:23 -04:00
Marc Chevrier e529a41ae5 Extend support of file set LANGUAGE property to custom rules
In case of file set attached to custom rules, the semantic of this
property is defined by the custom rule.
2026-10-13 17:56:23 +02:00
Tyler Yankee 67f253a8d2 Help: Factor out "may use generator expressions"
This had already been factored out to `GENEX_NOTE.rst`, but wasn't
applied very widely. Consolidate the language to consistently spell out
(a) the reference to `cmake-buildsystem(7)` and (b) the prose 'with the
syntax "$<...>"'.

To accompany the change, modify cmRST to override redefinitions of
substitutions within a single context instead of appending. Otherwise,
with the new note files, `cmake --help-*` prints repeated fragments
when it collates all scopes of a given field (e.g., all
`prop_*/COMPILE_OPTIONS.rst` from
`cmake --help-property COMPILE_OPTIONS`).
2026-10-13 11:46:56 -04:00
Tyler Yankee c3bdc4476f Help: Factor out XCODE_GENERATE_SCHEME reference 2026-10-13 10:32:21 -04:00
Tyler Yankee 94198532db Help: Factor out cmake-compile-features(7) reference 2026-10-13 10:32:20 -04:00
Brad King 784727d1de Merge topic 'minimal-builds-for-install' into release-4.5
41bb5b5e96 install: Add BUILD_DEPENDS option for install_prep targets
e36cd0ac29 FASTBuild: Add install_prep targets for minimal builds
62e4f1577d Makefile: Add install_prep targets for minimal builds
0ea2d28b54 Ninja: Add install_prep targets for minimal builds
5ea2838ac6 WMake: Avoid case collisions for install_prep
2a67f00fc8 Help: Add target names description to `cmake-buildsystem(7)`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12370
2026-10-13 09:52:17 -04:00
Brad King ba0ba14ffc Merge topic 'doc-gtest-discovery-mode' into release-4.5
3e4b7dbaa8 Help: Document GTest discovery mode default variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12627
2026-10-13 09:37:31 -04:00
Taylor SasserandTyler Yankee 41bb5b5e96 install: Add BUILD_DEPENDS option for install_prep targets
Add a `BUILD_DEPENDS` option to multiple `install` command signatures
for projects to specify dependencies which CMake cannot infer.

Co-authored-by: Tyler Yankee <tyler.yankee@kitware.com>
Closes: #27643
2026-10-12 13:58:14 -04:00
Taylor SasserandTyler Yankee e36cd0ac29 FASTBuild: Add install_prep targets for minimal builds
Extend the `install_prep/<component>` and `install_prep/all` targets to
the FASTBuild generator.

Co-authored-by: Tyler Yankee <tyler.yankee@kitware.com>
Issue: #27643
2026-10-12 13:58:12 -04:00
Tyler Yankee 3e4b7dbaa8 Help: Document GTest discovery mode default variable 2026-10-12 12:38:44 -04:00
Taylor SasserandTyler Yankee 62e4f1577d Makefile: Add install_prep targets for minimal builds
Extend the `install_prep/<component>` and `install_prep/all` targets to
the Makefile generators.

Some differences compared to the implementation for Ninja:
* A Makefile rule name cannot contain `:`, so components whose names
  contain one get no preparation target.
* A top-level rule cannot build an individual custom command output, so
  a generated file to be installed is prepared by building the target
  that owns its custom command.
* When a target must be relinked before installation, its `preinstall`
  rule is built after its `all` rule.
* Where the make tool matches target names case-insensitively,
  components whose names differ only in case share a preparation
  target, as done for `test_prep/`.

Co-authored-by: Tyler Yankee <tyler.yankee@kitware.com>
Issue: #27643
2026-10-12 12:23:47 -04:00
Taylor SasserandTyler Yankee 0ea2d28b54 Ninja: Add install_prep targets for minimal builds
Add `install_prep/<component>` convenience targets to the Ninja
generators to build dependencies of install components, and
`install_prep/all` to build the dependencies of all install components.

This is similar in flavor to commit ba6b6fbc24 (Ninja: Add Build
Dependencies for Tests, 2026-04-07), but here for the install command.

Co-authored-by: Tyler Yankee <tyler.yankee@kitware.com>
Issue: #27643
2026-10-12 12:23:46 -04:00
Tyler YankeeandTaylor Sasser 2a67f00fc8 Help: Add target names description to cmake-buildsystem(7)
Co-authored-by: Taylor Sasser <taylor.sasser@kitware.com>
2026-10-12 12:23:44 -04:00
Brad King cdde23c1c7 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-10-12 12:15:05 -04:00
Brad King 246e646075 Help: Update Sphinx versionadded directives for 4.5 release
Run the script:

    Utilities/Sphinx/update_versions.py --since v4.4.0 --overwrite
2026-10-12 11:50:45 -04:00
Brad King bd94337de4 Help: Organize and revise 4.5 release notes
Add section headers similar to the 4.4 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.
2026-10-12 11:46:30 -04:00
Brad King 2c6acd6164 Help: Consolidate 4.5 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/$ver.rst`.
2026-10-12 11:44:16 -04:00
Brad King f46287433b Help: Add release note for {get,set}_property RULE mode
This was missed in commit 386d1d874c (Add support of custom rules,
2026-06-24).
2026-10-12 11:43:48 -04:00
Brad King dc56e8d603 Help/command/source_group: Clarify when file set support was added
Follow-up commit 6043014d1d (source_group(): Add file set support,
2026-06-13) and commit faeeac60e8 (Add SOURCE_GROUP properties for file
set and source file, 2026-06-20).
2026-10-12 11:43:48 -04:00
Brad King 4e22ae1302 Merge topic 'qthelp-dark-theme'
2c480ea4ff Utilities/Sphinx: Give the Qt Help output a color scheme

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12625
2026-10-12 11:42:03 -04:00
Cristian Adam 2c480ea4ff Utilities/Sphinx: Give the Qt Help output a color scheme
The `qthelp` builder renders with Sphinx's `nonav` theme, so the color
scheme that `cmake.css` picks up from the `default` theme in the html
build is never generated for it.  The workaround that inlines the
`@import` in `cmake.css` silently falls back to `basic.css`, which
carries layout rules only, leaving the `.qch` pages with no styling of
their own.

Supply one, generated from a single template and two palettes.  Qt
Creator serves a documentation set's own `offline-dark.css` in place of
its `offline.css` or `offline-simple.css` when the Qt Creator theme is
dark, so link the stylesheet under one of those names and ship a dark
counterpart next to it.  Qt Creator 20 and older substitute only for
`offline-simple.css`, and request `offline.css` instead when the theme
is light, so install the light palette under both names.

The html build is unaffected: the extra stylesheet is linked, and its
static directory is added, only under the `qthelp` tag.
2026-10-10 11:27:53 +02:00
Tyler Yankee d5309429d0 ctest: Interpret relative paths in BUILD_DEPENDS
Previously, add_test and discover_tests required absolute paths to
files in BUILD_DEPENDS arguments. Relax this to allow projects to
specify relative paths, which is more consistent with e.g.
add_custom_command(DEPENDS).
2026-10-09 13:56:22 -04:00