Commit Graph

72833 Commits

Author SHA1 Message Date
Brad King 363a1997b1 Merge topic 'tutorial-fix-file' into release-4.2
1ad84c5301 Tutorial: Fix path to file in exercise solution

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11493
2025-12-10 09:27:24 -05:00
Brad King b78d490d42 Merge topic 'ci-package-msvc-14.44' into release-4.2
01cbab956e ci: Restore support for Windows 7 in official precompiled binaries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11491
2025-12-10 09:24:15 -05:00
Tyler Yankee 1ad84c5301 Tutorial: Fix path to file in exercise solution 2025-12-09 15:23:34 -05:00
Brad King 01cbab956e ci: Restore support for Windows 7 in official precompiled binaries
Since commit ffa010e32d (ci: Update Windows jobs to VS 2026, 2025-11-21,
v4.2.1~28^2) we link to a MSVC C++ runtime library that implements
`std::chrono::system_clock::now()` via `GetSystemTimePreciseAsFileTime`,
which is only available on Windows 8 and above.  Restore support for
Windows 7 by reverting `windows-{x86_64,i386}` packaging from MSVC 14.50
to MSVC 14.44.

Fixes: #27446
2025-12-08 20:20:56 -05:00
Brad King 485f11a780 CMake 4.2.1 v4.2.1 2025-12-08 13:33:58 -05:00
Brad King f0549d0083 Merge branch 'release-4.1' into release-4.2 2025-12-08 12:01:39 -05:00
Brad King 892fad3d23 CMake 4.1.4 v4.1.4 2025-12-08 11:30:41 -05:00
Brad King 2d0c514872 Merge branch 'release-4.1' into release-4.2 2025-12-08 11:09:47 -05:00
Brad King d96ae31271 Merge topic 'doc-4.2-vs-flags' into release-4.2
faa88b28a5 Help: Add 4.2 release note about VS flag suppression
19527eb5c6 Merge branch 'doc-4.1-vs-flags' into doc-4.2-vs-flags
e2646b9926 Help: Add 4.1 release note about VS flag suppression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11489
2025-12-08 11:09:11 -05:00
Brad King c267e6d104 Merge topic 'doc-4.1-vs-flags' into release-4.1
e2646b9926 Help: Add 4.1 release note about VS flag suppression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11489
2025-12-08 11:00:12 -05:00
Brad King faa88b28a5 Help: Add 4.2 release note about VS flag suppression
Document flags suppressed by commit 7202539fd4 (VS: Suppress MSBuild
default flags not specified by project or user, 2025-09-10,
v4.2.0-rc1~188^2~1).
2025-12-08 10:28:56 -05:00
Brad King 19527eb5c6 Merge branch 'doc-4.1-vs-flags' into doc-4.2-vs-flags 2025-12-08 10:28:50 -05:00
Brad King e2646b9926 Help: Add 4.1 release note about VS flag suppression
Document flags suppressed by commit 7db3dbddb2 (VS: Suppress MSBuild
default flags not specified by project or user, 2025-06-02,
v4.1.0-rc1~69^2).
2025-12-08 10:28:32 -05:00
Brad King cb16ce6503 Merge topic 'pdb-locations' into release-4.2
cd92cbae7e MSVC: Restore pre-4.2 default PDB paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11475
2025-12-08 10:17:35 -05:00
Brad King 9f1953f1b4 Merge topic 'fastbuild-pdb-quoting' into release-4.2
6f1fe8853d FASTBuild: Fix default MSVC compiler PDB paths
dff020e679 FASTBuild: Add internal helper for intermediate directory creation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Eduard Voronkin <edward.voronkin@gmail.com>
Merge-request: !11483
2025-12-08 10:15:55 -05:00
Brad King b05049e112 Merge topic 'ci-linkcheck' into release-4.2
b1a2371c26 Help: Replace QtCreator link with its permanent redirect

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11478
2025-12-08 10:01:49 -05:00
Brad King 28db77295b Merge branch 'release-4.1' into release-4.2 2025-12-08 10:00:15 -05:00
Brad King 7d113b9b84 Merge topic 'vs2019-v142' into release-4.2
8c332a3c7f VS: Restore support for VS 2019 with toolset v142 versions before 14.29

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11480
2025-12-08 09:58:55 -05:00
Brad King a9c997edc0 Merge topic 'vs2019-v142' into release-4.1
8c332a3c7f VS: Restore support for VS 2019 with toolset v142 versions before 14.29

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11480
2025-12-08 09:57:50 -05:00
Ben Boeckel cd92cbae7e MSVC: Restore pre-4.2 default PDB paths
Only force a compile PDB directory when PCH reusing.  This avoids
affecting behavior in unrelated situations.  However, PCH reuse requires
a known path so that the `copy_idb_pdb` logic can accurately generate
the copy instructions so that MSVC's rule that PCH use must use the same
PDB file can be adhered to.

Also revert the test suite adaptations from commit f78f592b78 (pchreuse:
defer target existence enforcement to generation time, 2025-06-16,
v4.2.0-rc1~481^2~4).

Fixes: #27401
2025-12-05 18:10:26 -05:00
Brad King 6f1fe8853d FASTBuild: Fix default MSVC compiler PDB paths
When we pass a PDB output directory to the compiler in a path that
requires quoting, the trailing backslash must be escaped to be parsed
correctly by the compiler, e.g., `cl /Fd"path\with space\\"`.  However,
`fbuild` does not parse this correctly when extracting `/Fd`.  Work
around that bug by using a trailing forward slash in quotes instead.
2025-12-05 18:02:30 -05:00
Brad King dff020e679 FASTBuild: Add internal helper for intermediate directory creation 2025-12-05 15:10:09 -05:00
Brad King 8c332a3c7f VS: Restore support for VS 2019 with toolset v142 versions before 14.29
Since commit 7db3dbddb2 (VS: Suppress MSBuild default flags not
specified by project or user, 2025-06-02, v4.1.0-rc1~69^2) we suppress
the `-Zc:inline` default flag when the project/user does not specify it.
That triggers an apparent bug in VS 2019 with v142 toolset versions
before 14.29 in which MSBuild fails when both `-Zc:inline` and `-nologo`
are suppressed.  This happens when `CMAKE_VERBOSE_MAKEFILE` is enabled,
such as in `try_compile` projects like our builtin compiler inspection.

Since `-nologo` is incidental, avoid suppressing it if `-Zc:inline` is
also suppressed.  Limit this workaround to relevant toolset versions.

Fixes: #27439
2025-12-05 12:47:53 -05:00
Brad King b1a2371c26 Help: Replace QtCreator link with its permanent redirect 2025-12-05 08:55:18 -05:00
Brad King 7e65afff2f Merge topic 'revert-pdb-compile-filename-setting' into release-4.2
809e387a13 cmGeneratorTarget: Revert "always provide a compile PDB filename"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11471
2025-12-03 16:24:25 -05:00
Brad King 809e387a13 cmGeneratorTarget: Revert "always provide a compile PDB filename"
Revert commit 1a8712d31a (cmGeneratorTarget: always provide a compile
PDB filename, 2025-11-24).  It changed our long-standing conditions for
when a naming a compiler-generated `.pdb` file is explicitly named.
It also caused some `BuildDepends` and `RunCMake.BuildDepends` failures
in VS builds that went unnoticed before merging.

Issue: #27401
2025-12-02 17:08:03 -05:00
Brad King e12206b738 Merge topic 'improve-subcommand-message-consistency' into release-4.2
a1a75f4008 cmake_file_api: Improve error message consistency
61143d7cef export: Improve error message consistency

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !11470
2025-12-02 15:31:59 -05:00
Brad King dd96576e15 Merge topic 'fix-cps-arg-parsing' into release-4.2
41b6b07527 cmExportCommand: Fix PACKAGE_INFO argument parsing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11459
2025-12-02 15:20:12 -05:00
Matthew Woehlke a1a75f4008 cmake_file_api: Improve error message consistency
Remove literal text "subcommand" from error messages. This addresses the
other use of this and improves consistency (see preceding commit). Also,
omit some unnecessary articles, which also improves consistency.
2025-12-01 15:52:36 -05:00
Matthew Woehlke 61143d7cef export: Improve error message consistency
Remove literal text "subcommand" from error messages. Most other
commands report errors like "<command> <subcommand> <message>", where
the message does not include the literal text "subcommand". The `export`
command was one of two exceptions to this.
2025-12-01 15:41:18 -05:00
Brad King 91d7d19a89 Merge branch 'release-4.1' into release-4.2 2025-12-01 14:00:50 -05:00
Brad King 121234b968 Merge topic 'fix-cps-export-definitions' into release-4.1
b2ca9fba8b CPS: Fix exporting definitions in CMake 4.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11469
2025-12-01 13:59:36 -05:00
Brad King 46e60dbc90 Merge branch 'release-4.1' into release-4.2 2025-12-01 12:30:40 -05:00
Brad King d79bcf219c Merge topic 'stdio-ctrl-c' into release-4.2
e419429616 StdIo: Restore Windows Console I/O modes on Ctrl-C

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !11457
2025-12-01 12:29:49 -05:00
Brad King b43eb123e4 Merge topic 'stdio-ctrl-c' into release-4.1
e419429616 StdIo: Restore Windows Console I/O modes on Ctrl-C

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11457
2025-12-01 12:27:59 -05:00
Matthew Woehlke b2ca9fba8b CPS: Fix exporting definitions in CMake 4.1
Backport commit 37b15eda3b (CPS: Fix exporting definitions, 2025-11-21)
to CMake 4.1.

Export compile definitions to CPS using the correct attribute name.

Fixes: #27403
2025-12-01 12:15:51 -05:00
Matthew Woehlke 41b6b07527 cmExportCommand: Fix PACKAGE_INFO argument parsing
While I'm unsure about why `cmPackageInfoArguments` was originally
written the way it was, in its current form, the way command sub-parsers
work, the parser never considers arguments associated with a sub-parser
if the sub-parser keyword isn't present. This means that the arguments
associated with `cmPackageInfoArguments` are treated as unknown, and the
logic to reject them being set if `PACKAGE_INFO` is not present can
never actually execute. Therefore, remove it, and remove the associated
(and effectively useless) `enable` argument to its `Check` method.

Instead, ensure that the package name is actually specified. The only
case in which the parser will create the `optional` associated with the
sub-parser arguments is if the relevant keyword (i.e. `PACKAGE_INFO`) is
present. However, while the associated value is `NonEmpty`, the way we
are using the parser does not actually enforce this, and it looks like a
correct fix may be a breaking change. Therefore, enforce it manually for
now.
2025-12-01 11:22:58 -05:00
Brad King e419429616 StdIo: Restore Windows Console I/O modes on Ctrl-C
Extend commit fb3e7825f3 (StdIo: Restore Windows Console I/O modes on
exit, 2025-05-23, v4.1.0-rc1~114^2) to cover termination by Ctrl-C.

Fixes: #27427
2025-11-26 15:18:03 -05:00
Brad King d4539f6f85 Merge topic 'renesas_compiler_toolchain_doc' into release-4.2
6139bb7903 Help: Document Renesas compiler toolchain

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11446
2025-11-26 10:47:28 -05:00
Brad King 27c73ff457 Merge topic 'pdb-compile-filename-setting' into release-4.2
1a8712d31a cmGeneratorTarget: always provide a compile PDB filename

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11445
2025-11-26 10:42:33 -05:00
Brad King c379978e0d Merge topic 'fix-fileset-export' into release-4.2
63fc96d856 export: Fix exporting targets with multiple file sets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11449
2025-11-26 10:36:16 -05:00
Brad King 68cd120b52 Merge topic 'emscripten-arch-id' into release-4.2
5ec87b2ba7 Emscripten: Provide CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11452
2025-11-26 10:02:24 -05:00
Brad King cea034594f Merge topic 'emscripten-try_run' into release-4.2
a308ea38f3 Emscripten: Fix try_run to run the `.js` file and not the adjacent `.wasm`
ad91bc558a ci: Make node available to Emscripten tests
27cc5d58bf Tests/RunCMake/Emscripten: Add tests covering try_compile COPY_FILE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11451
2025-11-26 10:00:08 -05:00
Brad King ab81620d17 Merge topic 'emscripten-fPIC' into release-4.2
86574083a8 Emscripten: Drop hard-coded -fPIC flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sam Clegg <sbc@chromium.org>
Merge-request: !11448
2025-11-26 09:57:40 -05:00
Brad King 0f0b06582e Merge topic 'fileapi-order-deps-undefined-target' into release-4.2
0f1d773bd7 fileAPI: Silently ignore non-target order dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !11447
2025-11-26 09:47:57 -05:00
Brad King 9af52479ae Merge topic 'ExternalProject-env-mod' into release-4.2
8afe5f227c ExternalProject: Fix environment modification ops named with underscores

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11442
2025-11-26 09:45:19 -05:00
Brad King 5ec87b2ba7 Emscripten: Provide CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID
Extend commit 96d9b94a98 (Emscripten: Add platform modules, 2025-05-16,
v4.2.0-rc1~607^2~3) to account for commit 7f0f382c55 (Provide
CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID on more compilers, 2025-03-24,
v4.1.0-rc1~499^2).

Fixes: #27425
2025-11-25 15:46:16 -05:00
Brad King a308ea38f3 Emscripten: Fix try_run to run the .js file and not the adjacent .wasm
Since commit 96d9b94a98 (Emscripten: Add platform modules, 2025-05-16,
v4.2.0-rc1~607^2~3) we've considered the `.wasm` to be the `try_compile`
output because we need `COPY_FILE` to get it for extracting `INFO:`
strings during our inspection checks.  This breaks `try_run` because
`node`, used via `CMAKE_CROSSCOMPILING_EMULATOR`, expects the `.js`.
Revert to considering the `.js` to be the primary output file, but
switch to the `.wasm` in `COPY_FILE`'s implementation.

Fixes: #27421
2025-11-25 15:45:46 -05:00
Brad King ad91bc558a ci: Make node available to Emscripten tests 2025-11-25 15:45:46 -05:00
Brad King 27cc5d58bf Tests/RunCMake/Emscripten: Add tests covering try_compile COPY_FILE
Compiler inspection relies on `try_compile`'s `COPY_FILE` option to copy
the `.wasm` file because the `.js` does not have the `INFO:size` string.

Issue: #27421
2025-11-25 15:45:24 -05:00