Commit Graph
78184 Commits
Author SHA1 Message Date
Brad King 7887ae931b Merge topic 'FindDoxygen-terminal-and-stamp'
6c4a0d284e FindDoxygen: Makes USES_TERMINAL compatible with USE_STAMP_FILE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12754
2026-11-03 10:16:15 -05:00
Brad King defb221446 Merge topic 'listfile-coverage'
d4d35ecdc0 cmLcovTracefile: Use an enum for the lcov record types
54dc4d7bcc cpack: Record CMake listfile coverage
d602bd63b0 ctest_coverage: Read CMake listfile coverage
c11d1ee751 ctest: Add CMAKE coverage tool for CMake listfile coverage
37b38a29b6 cmake: Add CMAKE_LISTFILE_COVERAGE_DIR to record listfile coverage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !12678
2026-11-03 09:39:55 -05:00
Brad King 76d4b1fa80 Merge topic 'cps-warn'
dc0e837c54 CPS: Warn when CMake loads a CPS file from a non-conforming location

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12605
2026-11-03 09:32:57 -05:00
Brad King 1eed45617e Merge topic 'fileset-interface-genex-consumer'
3110f265a9 FILE_SET: Evaluate usage requirements per consumer
cafd167ba3 cmTargetPropertyEntry: Accept a file set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12712
2026-11-03 09:31:02 -05:00
Brad King a2a25b15a7 Merge topic 'ctest-junit-utc-timestamp'
e026c11ed2 CTest: Write JUnit testsuite timestamp in UTC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !12751
2026-11-03 09:29:14 -05:00
Brad King 07535761ea Merge topic 'subcommand-did-you-mean'
859a40b291 cmSubcommandTable: Implement closest string for invalid subcommand

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12752
2026-11-03 09:26:00 -05:00
Brad King 4e789da92d Merge topic 'presets-did-you-mean'
ba61d59840 presets: Implement closest string for invalid preset
2603725ccc presets: Extend ResolvePreset to workflow presets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12753
2026-11-03 09:24:06 -05:00
Brad King da2499b057 Merge topic 'genex-link-group-extra'
f217446772 Genex: Fix crash on strings concatenated on LINK_GROUP

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12760
2026-11-03 09:22:03 -05:00
Brad King eb1e97c362 Merge topic 'genex-out-of-range'
25abbc4ad4 Genex: Fix crash on out of range LIST index

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12759
2026-11-03 09:20:03 -05:00
Brad King 884dc0d46e Merge topic 'cpack-appimage-env-opts'
370c27de22 CPack/AppImage: Derive CPACK_APPIMAGE_ARCH from the target processor
fb398e1000 CPack: Add test coverage for CPACK_APPIMAGE_VERSION
824564c7f0 CPack: Add appimagetool environment options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Perry Naseck <git@perrynaseck.com>
Merge-request: !12755
2026-11-03 09:18:16 -05:00
Brad King 088b81fc91 Merge topic 'cpack-appimage-apprun-file'
d9f1f4c346 CPack/AppImage: Add CPACK_APPIMAGE_APPRUN_FILE and ignore directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12756
2026-11-03 09:16:35 -05:00
Brad King cd05b9ba98 Merge topic 'update-nghttp2'
6ea32b6e8c Merge branch 'upstream-nghttp2' into update-nghttp2
0fea265ee6 nghttp2 2026-11-02 (80dcb814)
30fe732899 nghttp2: Update script to get nghttp2 1.71.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12763
2026-11-03 09:15:08 -05:00
Brad King 3575332950 Merge topic 'update-expat'
67c0de15bd Merge branch 'upstream-expat' into update-expat
10c41e4e83 expat 2026-11-02 (a70841d9)
5077ff9935 expat: Update script to get Expat 2.10.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12762
2026-11-03 09:13:26 -05:00
Brad King b1d0faca22 Merge topic 'CMakeAddFortranSubdirectory-propagate-error'
5b5037f125 CMakeAddFortranSubdirectory: Fail when the MinGW configure or build fails

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12758
2026-11-03 09:11:56 -05:00
Brad King 1e35963d75 Merge topic 'CMakeAddFortranSubdirectory-byproducts'
bf00790cfb CMakeAddFortranSubdirectory: Declare MinGW import libraries as byproducts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12757
2026-11-03 09:10:10 -05:00
Brad King ed68362c26 Merge branch 'release-4.5' 2026-11-03 09:07:50 -05:00
Brad King d8b52e4ac4 Merge topic 'codegen-test-fs-resolution'
4daf96a1eb Tests/RunCMake/Codegen: Fix rebuild cases on make tools with 1s resolution

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Tyler Yankee <tyler.yankee@kitware.com>
Merge-request: !12761
2026-11-03 09:07:49 -05:00
Brad King 10bf932bdd Merge topic 'codegen-test-fs-resolution' into release-4.5
4daf96a1eb Tests/RunCMake/Codegen: Fix rebuild cases on make tools with 1s resolution

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Tyler Yankee <tyler.yankee@kitware.com>
Merge-request: !12761
2026-11-03 09:07:47 -05:00
Brad King a4fb62dc39 Merge branch 'release-4.5' 2026-11-03 09:05:50 -05:00
Brad King f428569d4a Merge topic 'clang-tidy-empty-suppressions'
0fcac5aa18 clang-tidy: Enable checks that have no existing violations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12749
2026-11-03 09:05:49 -05:00
Brad King c5bdf509e4 Merge topic 'clang-tidy-empty-suppressions' into release-4.5
0fcac5aa18 clang-tidy: Enable checks that have no existing violations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12749
2026-11-03 09:05:47 -05:00
James Miro 6c4a0d284e FindDoxygen: Makes USES_TERMINAL compatible with USE_STAMP_FILE
Fixes: #28238
2026-11-03 09:03:57 -05:00
Kitware Robot 52a6208f2f CMake Nightly Date Stamp 2026-11-03 00:08:31 -05:00
Brad King 6ea32b6e8c Merge branch 'upstream-nghttp2' into update-nghttp2
# By nghttp2 upstream
* upstream-nghttp2:
  nghttp2 2026-11-02 (80dcb814)
2026-11-02 16:39:23 -05:00
nghttp2 upstream 0fea265ee6 nghttp2 2026-11-02 (80dcb814)
Code extracted from:

    https://github.com/nghttp2/nghttp2.git

at commit 80dcb8140af050fac91a7e6af4fc6dd013404bd1 (v1.71.0).
2026-11-02 16:39:23 -05:00
Brad King 30fe732899 nghttp2: Update script to get nghttp2 1.71.0 2026-11-02 16:38:58 -05:00
Brad King 67c0de15bd Merge branch 'upstream-expat' into update-expat
# By Expat Upstream
* upstream-expat:
  expat 2026-11-02 (a70841d9)
2026-11-02 16:28:42 -05:00
Expat Upstream 10c41e4e83 expat 2026-11-02 (a70841d9)
Code extracted from:

    https://github.com/libexpat/libexpat.git

at commit a70841d9ffa64ddde29ab824ed6305035ebe4c47 (R_2_10_0).
2026-11-02 16:28:42 -05:00
Brad King 5077ff9935 expat: Update script to get Expat 2.10.0 2026-11-02 16:28:33 -05:00
Daniel Nicoletti 370c27de22 CPack/AppImage: Derive CPACK_APPIMAGE_ARCH from the target processor
cpack only knows the host CMAKE_SYSTEM_PROCESSOR, so cross-compiled
AppImages got the host architecture.  Set the default in the CPack
module instead, where the project's target processor is known.

Closes: #27556
2026-11-02 16:24:35 -05:00
Daniel Nicoletti fb398e1000 CPack: Add test coverage for CPACK_APPIMAGE_VERSION
Verify that the `X-AppImage-Version` entry that appimagetool writes to
the desktop file defaults to `CPACK_PACKAGE_VERSION` and that it can be
overridden with `CPACK_APPIMAGE_VERSION`.
2026-11-02 16:24:34 -05:00
Daniel Nicoletti 824564c7f0 CPack: Add appimagetool environment options
The following options were added to complement what is possible
to control of appimagetool:
 - CPACK_APPIMAGE_ARCH
 - CPACK_APPIMAGE_SIGN_PASSPHRASE
 - CPACK_APPIMAGE_VERSION

Issue: #27556
2026-11-02 16:23:36 -05:00
Daniel Tierney dc0e837c54 CPS: Warn when CMake loads a CPS file from a non-conforming location
The CMake find_package command emits a diagnostic (default action: warn) when
reading a CPS file from a location not listed in the CPS package searching
specification.
2026-11-02 12:02:06 -05:00
Julien Marrec 5b5037f125 CMakeAddFortranSubdirectory: Fail when the MinGW configure or build fails
The configure and build wrapper scripts ignored the result of
`execute_process`, so a failure in the MinGW project (e.g. a gfortran
compilation error) was not reported and the parent build continued,
failing later at link time or not at all.

Closes: #28240
2026-11-02 11:20:52 -05:00
Mickaël Germain d4d35ecdc0 cmLcovTracefile: Use an enum for the lcov record types
Read compared each record key with string literals in an if chain, and
kept a second list of the records that belong in the block of a file.
Write spelled the same keys a third time.

Give each record type a name in an enum and keep the keys in one table.
Read looks up the key once and switches on the type, and the compiler
checks that each switch handles every type.  Write and the error
messages take the keys from the same table.

Issue: #28192
2026-11-02 08:19:40 -08:00
Mickaël Germain 54dc4d7bcc cpack: Record CMake listfile coverage
The CPack generator modules, the CPack configuration file and the install
scripts that cpack runs to make a package are CMake language code, but
only cpack runs them.  Start recording when cpack starts its work, as
ctest does, and write the tracefile on every return.  The help and
version options record nothing.

Issue: #28192
2026-11-02 08:19:40 -08:00
Mickaël Germain d602bd63b0 ctest_coverage: Read CMake listfile coverage
Add a handler that reads the `<test-name>.cmake-coverage.info` files
that the `CMAKE` coverage tool writes for each test.  It searches the
build tree for them, without following symbolic links, and merges them
with the lcov tracefile code that ctest uses for the per-test merge.
The merge is needed because many tests run the same listfile, and the
lcov parser keeps only the first record of each file.  A file that
cannot be read is skipped with a warning.

The handler reports only files in the source tree.  It leaves out files
in the build tree, also when the build tree is inside the source tree,
unless the two trees are the same.  This keeps the modules of CMake
itself and generated files out of the report.  It also leaves out files
that no longer exist, because the report step would log an error for
them, and an error makes `ctest -S` fail.

Teach the lcov parser to count `FN` and `FNDA` records when asked, and
write `FunctionsTested` and `FunctionsUnTested` for CMake coverage.  The
Clang handler does not ask, so its output does not change.  The parser
now also ignores `DA` and `BRDA` records for a line past the end of the
source file, instead of writing out of range.  This protects the Clang
handler too.

Issue: #28192
2026-11-02 08:19:40 -08:00
Mickaël Germain c11d1ee751 ctest: Add CMAKE coverage tool for CMake listfile coverage
Add a `CMAKE` value for the `CoverageTool` setting, next to `LLVM-COV`.
With it, ctest gives each test its own scratch folder,
`<test-name>_cmake-coverage`, next to the `CTestTestfile.cmake` that
describes the test, and runs the test with CMAKE_LISTFILE_COVERAGE_DIR
set to that folder.  An ambient value of the variable is replaced.
Before the test, ctest removes the folder and the merged file of an
earlier run.

After the test, ctest merges the tracefiles in the folder into one
`<test-name>.cmake-coverage.info` file with a `TN:` record, and removes
the folder.  Coverage problems are warnings and never change the test
result: a folder that cannot be created, an unreadable file, a merged
file that cannot be written, and a test that timed out.  The folder is
kept for inspection when a file was skipped or the write failed.

The merge leaves out the files under ctest's build directory, such as
generated files and `try_compile` projects, unless the build directory
is the source directory.  If no file is left, the test gets no merged
file, as for a test that runs no CMake code.

ctest now also records coverage of the CMake code that it runs itself,
such as `CTestTestfile.cmake` files and dashboard scripts, when
CMAKE_LISTFILE_COVERAGE_DIR is set at startup.  ctest reads the top
`CTestTestfile.cmake` by a relative path, so the collector now makes a
relative listfile path absolute with the current working directory.

Document the tool and add a recipe for CMake's own test suite to
`Tests/RunCMake/README.rst`.

Issue: #28192
2026-11-02 08:19:40 -08:00
Brad King 4daf96a1eb Tests/RunCMake/Codegen: Fix rebuild cases on make tools with 1s resolution
Revise a test from commit 36fcfb3e01 (Tests/RunCMake/Codegen: Extend
coverage, 2026-10-25, v4.5.0-rc2~4^2) to pass more reliably on such
`make` tools.
2026-11-02 11:17:46 -05:00
Uday e026c11ed2 CTest: Write JUnit testsuite timestamp in UTC
The `<testsuite timestamp>` attribute of the `--output-junit` report was
written in local time with no time zone designator, so downstream tools
parsing the JUnit XML could not determine the actual instant without
knowing the producing machine's time zone.  Two reports produced in
different time zones could not be compared.

Write the timestamp in UTC with a trailing `Z` (ISO 8601 / xs:dateTime),
making it an unambiguous instant.
2026-11-02 10:53:39 -05:00
Julien Marrec bf00790cfb CMakeAddFortranSubdirectory: Declare MinGW import libraries as byproducts
The MinGW external project produces the import libraries of the
imported targets, but did not declare them, so Ninja failed with
"missing and no known rule to make it".

Declare them as byproducts, and pass --clean-first to the inner build
when any of them is missing, since cleaning the outer project deletes
them but the inner build would otherwise consider itself up to date and
not relink.

Closes: #28239
2026-11-02 10:30:20 -05:00
Brad King 80f76c194c Merge topic 'export-deprecated-msg'
07dbb31e69 GenerateExportHeader: Support deprecation messages
1abe59f5d4 GenerateExportHeader: Fix name of example function definition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12741
2026-11-02 10:25:52 -05:00
Brad King 993ea02578 Merge topic 'build-depends-genex'
192199fae0 Evaluate generator expressions in test and install BUILD_DEPENDS
7047fa76f6 cmTestGenerator,cmInstallGenerator: Factor out BUILD_DEPENDS entry resolution

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12713
2026-11-02 10:22:45 -05:00
Brad King 667e741426 Merge topic 'update-libarchive'
e34b57cfa3 Merge branch 'upstream-LibArchive' into update-libarchive
f8fb0c1cd8 LibArchive 2026-10-30 (03036ffa)
12de6af2d1 libarchive: Update script to get 3.8.11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12748
2026-11-02 10:21:17 -05:00
Brad King 36463dfd7b Merge topic 'flex-warnings'
bd7f73e210 cmDependsJavaLexer: Match newlines inside string literals
5eab16cef5 cmExprLexer: Treat newline as whitespace explicitly
168c36e6b3 Utilities/Scripts: Drop stale extra flex arguments from lexer script

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12743
2026-11-02 10:18:37 -05:00
Brad King ba16768bb5 Merge branch 'release-4.5' 2026-11-02 10:16:23 -05:00
Brad King 82f994766d Merge topic 'source_group-fix-TREE-with-empty-path'
809aacdd5c source_group: TREE with empty string must be supported

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12746
2026-11-02 10:16:23 -05:00
Brad King 9e1c78ad92 Merge topic 'source_group-fix-TREE-with-empty-path' into release-4.5
809aacdd5c source_group: TREE with empty string must be supported

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12746
2026-11-02 10:16:20 -05:00
Brad King 16a05b5134 Merge branch 'release-4.5' 2026-11-02 10:13:23 -05:00
Brad King 17d4601bed Merge topic 'sbom-fix-uninstalled-deps'
2d732c85de cmSbom: Export uninstalled libraries / references to private static deps

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12730
2026-11-02 10:13:22 -05:00