Commit Graph

37682 Commits

Author SHA1 Message Date
Ben Boeckel 1bf48e34f4 Ninja: escape special characters in custom command comments
Considerations of Ninja's control sequences was not considered in
30fb5b1b22 (Ninja: add COMMENT to build statement descriptions,
2024-05-01) via !9484. Escape both newlines and dollar signs.

Fixes: #27181
2025-09-02 15:33:20 -04:00
Brad King ba8c4a15f1 CMake 4.1.1 2025-08-27 12:33:28 -04:00
Brad King e0cd3b7e7d Merge topic 'cmList-swap-fix' into release-4.1
071e8678de cmList: fix swap function definition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !11101
2025-08-27 10:53:22 -04:00
Brad King cf9cdde33d Merge topic 'vs7-generator-utility-target-typo' into release-4.1
93a83bcc00 cmGlobalVisualStudio7Generator: fix initialization typo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11100
2025-08-27 10:48:13 -04:00
Brad King 18b3dd1e91 Merge topic 'ninja-many-subdirs' into release-4.1
6de40e7a4d Ninja: Fix regression with `.bat` wrapper around `ninja`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Josef Angstenberger <code@jtxa.de>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !11111
2025-08-27 10:40:10 -04:00
Brad King 6de40e7a4d Ninja: Fix regression with .bat wrapper around ninja
Revise the change from commit 5a36d0c9e7 (Ninja: Fix regression with a
large number of subdirectories, 2025-03-04, v4.0.0-rc3~2^2) to use a
command-line length limit small enough for `.bat` files.

Fixes: #27153
2025-08-25 11:31:23 -04:00
Marc Chevrier 071e8678de cmList: fix swap function definition
swap function should be in the same namespace as the cmList class.

Reported by https://pvs-studio.com/en/blog/posts/cpp/1277/ (N1)

Issue: #27159
2025-08-21 17:19:52 +02:00
Ben Boeckel 93a83bcc00 cmGlobalVisualStudio7Generator: fix initialization typo
Typo introduced in b82a74d918 (generators: use GetSupportDirectory() in
more places, 2025-05-21) via !10812. Pointed out in a PVS-Studio blog
post.

See: https://pvs-studio.com/en/blog/posts/cpp/1277/ (N3)
2025-08-20 22:45:13 -04:00
Brad King 0ef525208c Merge topic 'ctest-T-test-timeout' into release-4.1
9dc3edbba8 ctest: Restore default test timeout for command-line `-T Test` step
8745e6308e ctest: Restore default of no time limit for command-line `-T Test` step

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11094
2025-08-20 10:01:00 -04:00
Brad King 9dc3edbba8 ctest: Restore default test timeout for command-line -T Test step
In commit 774fcbe49c (CTest: Base command line mode on top of scripting
commands, 2024-10-05, v4.0.0-rc1~653^2) the implementation of this step
was converted to use `ctest_test` internally.  That command has its own
default test timeout of 600s if the ctest "TimeOut" configuration value
is not set.  If "TimeOut" is not set then default it to our previous
command-line mode default test timeout.

Fixes: #27139
2025-08-18 14:30:56 -04:00
Brad King 8745e6308e ctest: Restore default of no time limit for command-line -T Test step
Refactoring in commit 83845184db (cmCTest: Move timing functions from
cmCTestScriptHandler to cmCTest, 2024-10-23, v4.0.0-rc1~576^2) enabled a
time limit even if the undocumented `CTEST_TIME_LIMIT` script variable
is not set.
2025-08-18 14:10:15 -04:00
Brad King 4445478ef7 Merge topic 'pkgc-import-system-fix' into release-4.1
d5f6cf5ba8 PkgC: Only remove system paths which are exact matches
93f77d8183 PkgC: Allow system paths during IMPORT, POPULATE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11078
2025-08-14 09:22:47 -04:00
Brad King 8fbddbc777 Merge topic 'genex-strip-nested' into release-4.1
8227028e49 string(GENEX_STRIP): Fix regression on nested generator expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11077
2025-08-14 09:20:08 -04:00
Martin Duffy 8227028e49 string(GENEX_STRIP): Fix regression on nested generator expressions
Since commit 13c7bb5b0c (cmGeneratorExpression: Update strip function to
collect parsed expressions, 2025-04-08), the logic to strip generator
expressions from a string made incorrect assumptions about the contents of
generator expressions, leading certain cases to be stripped incorrectly.

Clean up the logic and fix broken behavior, and add test coverage with
`string(GENEX_STRIP)`.

Fixes: #27133
2025-08-13 15:52:16 -04:00
Brad King 914803bf31 Makefile: Fix regression that prints unnecessary VT100 escape sequences
Since commit 509c424472 (StdIo: Replace uses of KWSys Terminal with
StdIo::Print, 2025-05-08, v4.1.0-rc1~151^2~2) we print unnecessary VT100
escape sequences to establish normal text even when not intending to
print color.  In combination with `CLICOLOR_FORCE=1`, this breaks
detection of implicit link information from compiler driver output.

Fixes: #27137
2025-08-13 15:30:25 -04:00
Brad King a0a9e48f85 StdIo: Fix Terminal abstraction to avoid unnecessary VT100 escape sequences
Fix commit 329d755dbd (StdIo: Add a Terminal abstraction to print color
text, 2025-05-06, v4.1.0-rc1~151^2~3) to avoid printing a VT100 escape
sequence for normal text if we did not print any sequence initially.
We already use this approach for Windows Console text attributes.

Issue: #26924
2025-08-13 15:30:24 -04:00
Vito Gamberini d5f6cf5ba8 PkgC: Only remove system paths which are exact matches 2025-08-13 12:59:00 -04:00
Vito Gamberini 93f77d8183 PkgC: Allow system paths during IMPORT, POPULATE
Fixes: #27138
2025-08-13 11:57:09 -04:00
Brad King 2a2c2e0b26 CMake 4.1.0 2025-08-05 10:55:57 -04:00
Heiko Becker aeae5ede92 Autogen/RCC: Only pass --no-zstd to Qt6
In commit 9e87df4d46 (Autogen/RCC: Disable zstd if it is not supported,
2024-02-08, v3.29.0-rc1~5^2) we added this flag, but it doesn't exist
for Qt 5.  It was only introduced with qtbase commit `14546d1816a8`,
which first appeared in Qt 6.

Fixes: #27111
Issue: #25664
2025-08-04 13:45:14 -04:00
Brad King f4effce6a4 CMake 4.1.0-rc4 2025-07-29 10:17:43 -04:00
Brad King 21e99dbf49 install(DIRECTORY): Revert "Add EXCLUDE_EMPTY_DIRECTORIES option"
Revert commit b70ef48b27 (install(DIRECTORY): Add
EXCLUDE_EMPTY_DIRECTORIES option, 2025-04-20, v4.1.0-rc1~212^2).
The implementation had at least two problems:

* It did not exclude the top-level directory if empty.
* It did not exclude non-empty directories whose contents are
  all filtered out.

Revert the feature pending a revised implementation.

Issue: #19189
Closes: #27092
2025-07-28 14:21:09 -04:00
Brad King 2162546920 Merge topic 'curl-8.15-deprecated-sectransp' into release-4.1
00c34a7d25 cmCurl: Suppress curl 8.15 deprecation warning for curl 8.[3-5] workaround

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10971
2025-07-28 09:25:51 -04:00
Brad King 2f2ccd53c6 Merge topic 'curl-8.15-deprecated-sectransp' into release-4.0
00c34a7d25 cmCurl: Suppress curl 8.15 deprecation warning for curl 8.[3-5] workaround

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10971
2025-07-28 09:24:57 -04:00
Stepanov Igor 0b7d8e4ad6 xcode: Restore ctest --build-and-test without --build-project
Previously, it used to be possible to execute ctest --build-and-test
without specifying --build-project. When used with the Xcode generator,
this would work as long as there was only one .xcodeproj file in the
directory, where xcodebuild would then default to using that project.
The recent changes to support .xcworkspace files broke that logic, placing
a malformed pair of options "-project .xcodeproj" on the command line
instead of omitting the "-project" option altogether.

Fixes: #27090
2025-07-26 19:43:28 +10:00
Brad King 00c34a7d25 cmCurl: Suppress curl 8.15 deprecation warning for curl 8.[3-5] workaround
Curl 8.15 removed support for Secure Transport and deprecated the
corresponding `CURLSSLBACKEND_SECURETRANSPORT` constant.  We still need
the constant in a workaround for a runtime-checked range of older curl
versions.  Suppress the deprecation warning at compile time.

Fixes: #27086
2025-07-24 11:33:01 -04:00
Brad King fa3978fa85 CMake 4.1.0-rc3 2025-07-23 15:04:24 -04:00
Vito Gamberini baa74ed677 clang-tidy: Use cleaner path to export-fixes file with Ninja
The clang-tidy "export-fixes" flag was using unconverted Ninja paths due
to a flipped boolean check from commit 993dde925f (TargetGenerator:
Factor out generation of code check rules, 2023-05-12,
v3.27.0-rc1~84^2~2).
2025-07-15 10:46:10 -04:00
Brad King 2f8ae28ef6 CMake 4.1.0-rc2 2025-07-10 10:35:07 -04:00
Brad King 265c676445 Merge topic 'windows-kernel-mode-driver' into release-4.1
2f5dce1b40 cmExperimental: remove the flag for Windows Kernel Mode Driver support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10937
2025-07-10 10:30:23 -04:00
Vito Gamberini ea6404b9c4 FileAPI: Ignore unresolved FileSet generators
Fixes: #27054
2025-07-09 10:08:47 -04:00
Brad King 2f5dce1b40 cmExperimental: remove the flag for Windows Kernel Mode Driver support
Enable setting `CMAKE_SYSTEM_NAME` to `WindowsKernelModeDriver` without
an experimental gate.
2025-07-09 09:54:45 -04:00
Vito Gamberini a38e594340 project: fix keyword argument as project name
Fixes: #27051
2025-07-08 18:00:00 -04:00
Vito Gamberini 7238c8c999 ArgumentParser: implement HasKeyword helper 2025-07-08 17:44:07 -04:00
Brad King 2e76b79d80 Merge topic 'clang-cl-c23' into release-4.1
9a720d96eb clang-cl: Add support for C23

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !10916
2025-07-02 08:01:55 -04:00
Vito Gamberini 58d9950842 CPS: Fix empty configuration field on noconfig builds
Fixes: #27044
2025-07-01 17:01:13 -04:00
Yonggang Luo 9a720d96eb clang-cl: Add support for C23
Although there is no `cl -std:c23` flag, the underlying Clang compiler
does have a C23 mode we can activate by passing `-std=c23` through a
`clang-cl` wrapper flag.

Also port the fix from commit 30139913e9 (VS: Restore support for mixing
C++23 and C in one target with clang-cl, 2024-12-09, v3.31.3~10^2).

Fixes: #27038
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Co-authored-by: Brad King <brad.king@kitware.com>
2025-07-01 11:20:56 -04:00
Brad King 33375efebc Merge topic 'windows-old-sdk' into release-4.1
d63d3bb606 StdIo: Fix compilation on older Windows SDK versions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Joe Snyder <joe.snyder@kitware.com>
Merge-request: !10918
2025-07-01 11:16:58 -04:00
Brad King 17d4eee742 Merge topic 'update-kwsys' into release-4.1
57a54d6314 Merge branch 'upstream-KWSys' into update-kwsys
d9c3dd3228 KWSys 2025-07-01 (660d6875)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10917
2025-07-01 11:11:35 -04:00
Brad King 47901f3c53 Merge topic 'ctest-fix-relative-paths' into release-4.1
f98732bea8 ctest_configure: Restore handling of relative CTEST_BINARY_DIRECTORY
5a1d5fd9be ctest_start: Restore log file location for relative CTEST_BINARY_DIRECTORY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10912
2025-07-01 11:04:02 -04:00
Brad King 84cdf061e5 Merge topic 'ctest-fix-relative-paths' into release-4.0
f98732bea8 ctest_configure: Restore handling of relative CTEST_BINARY_DIRECTORY
5a1d5fd9be ctest_start: Restore log file location for relative CTEST_BINARY_DIRECTORY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10912
2025-07-01 10:57:56 -04:00
Brad King 57a54d6314 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2025-07-01 (660d6875)
2025-07-01 10:46:02 -04:00
Brad King d63d3bb606 StdIo: Fix compilation on older Windows SDK versions
Define `ENABLE_VIRTUAL_TERMINAL_{INPUT,PROCESSING}` if necessary.
2025-06-30 16:51:48 -04:00
Daniel Pfeifer f98732bea8 ctest_configure: Restore handling of relative CTEST_BINARY_DIRECTORY
In commit e52eada2c2 (cmCTestConfigureCommand: Refactor command line
construction, 2025-01-28, v4.0.0-rc1~60^2~2) we switched from the
`BuildDirectory` setting, which was always an absolute path, to
`CTEST_BINARY_DIRECTORY`.  Convert it to an absolute path too.

Fixes: #27026
2025-06-30 11:06:14 -04:00
Daniel Pfeifer 5a1d5fd9be ctest_start: Restore log file location for relative CTEST_BINARY_DIRECTORY
Extend commit 3c321b6571 (cmCTestStartCommand: Inline
InitializeFromCommand function, 2024-10-17, v4.0.0-rc1~605^2~6) to
initialize BinaryDir as an absolute path.

Issue: #27026
2025-06-30 11:03:53 -04:00
Brad King c6033e7b64 Merge topic 'vs-outdated-usage' into release-4.1
bd31652e1b VS: Drop outdated usage text about appending platform to generator name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10905
2025-06-26 09:21:39 -04:00
Brad King bd31652e1b VS: Drop outdated usage text about appending platform to generator name
This was missed by commit 381c446ff7 (VS: Remove support for appending a
platform to the generator name, 2024-12-13, v4.0.0-rc1~156^2).

Issue: #26481
2025-06-24 14:23:58 -04:00
Brad King 7e0e2e6aa2 CMake 4.1.0-rc1 2025-06-24 13:23:35 -04:00
Brad King 5dd4af194e Merge topic 'vs-link-defaults' into release-4.1
99d09ec45a VS: Suppress MSBuild default link flags not specified by project or user

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10891
2025-06-19 10:20:47 -04:00
AJIOB 99d09ec45a VS: Suppress MSBuild default link flags not specified by project or user
MSBuild adds some `link` flags by default, but for CMake they may not
match what's produced by command-line generators.  If these flags are
not specified by the project or user, suppress them.

Fixes: #27004
2025-06-17 14:12:43 -04:00