78225 Commits
Author SHA1 Message Date
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
Brad King e9767d8f79 Merge topic 'sbom-fix-uninstalled-deps' into release-4.5
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:20 -05:00
Brad King 5330ff5e12 Merge branch 'release-4.5' 2026-11-02 10:09:42 -05:00
Brad King 3603cc143e Merge topic 'toolchain-change-empty'
fcce694567 CMAKE_TOOLCHAIN_FILE: Account for empty values when detecting changes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !12745
2026-11-02 10:09:41 -05:00
Brad King af4c807a86 Merge topic 'toolchain-change-empty' into release-4.5
fcce694567 CMAKE_TOOLCHAIN_FILE: Account for empty values when detecting changes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !12745
2026-11-02 10:09:39 -05:00
Brad King 904f38d801 Merge branch 'release-4.5' 2026-11-02 10:07:27 -05:00
Brad King 93a746ff14 Merge topic 'fix-ninja-interface-object-bmi'
8e127aa243 c++modules: Make interface object BMIs static Ninja outputs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12744
2026-11-02 10:07:26 -05:00
Brad King 55cf31922b Merge topic 'fix-ninja-interface-object-bmi' into release-4.5
8e127aa243 c++modules: Make interface object BMIs static Ninja outputs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12744
2026-11-02 10:07:24 -05:00
Brad King 35de7eca76 Merge topic 'embt-compiler'
e739170f15 EMBTClang: Add support for the Embarcadero bcc64x compiler
f29cfe2bf9 Borland: Do not identify Clang-based Embarcadero compilers
641d5321a7 Tests/Plugin: Fix symbol lookup with 64-bit Embarcadero compilers
cdfd0615b8 Tests/RunCMake/target_link_libraries-LINK_LIBRARY: Fix MinGW lld check
ab4d0130ed Tests/BundleUtilities: Fix test with Clang-based MinGW toolchains

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11356
2026-11-02 10:05:36 -05:00
Tyler Yankee f217446772 Genex: Fix crash on strings concatenated on LINK_GROUP
When a string is concatenated to the beginning and/or end of a
`$<LINK_GROUP:...>` generator expression without a semicolon, the
internal group marker is disrupted, leading to a crash after
evaluation.
2026-11-02 09:20:21 -05:00