Martin Duffy
2299b2fcab
instrumentation: Add build snippet
...
Adds a new snippet generation for recording the full time spent waiting for
`ninja` or `make` invocations to finish.
2025-02-11 13:31:28 -05:00
Brad King
2baab9b99f
Merge topic 'print-presets-log-level' into release-4.0
...
5303ad3823 Presets: Only print presets variables for verbose log level or higher
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10315
2025-02-11 07:45:21 -05:00
Brad King
640cf691fe
Merge topic 'instrumentation-build-config' into release-4.0
...
9689155a05 instrumentation: Add Config value to snippet data
ee3a55fc48 cmMakefileGenerator: Update GetConfigName to return const reference
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10300
2025-02-10 08:24:59 -05:00
Craig Scott
5303ad3823
Presets: Only print presets variables for verbose log level or higher
...
Fixes : #26664
2025-02-10 22:56:55 +11:00
Brad King
f189e64126
Tests: Add cases covering our mkdtemp code paths
...
* `cmSystemTools::MakeTempDirectory` is our own code.
* `uv_fs_mkdtemp` requires patching to backport to platforms
not supported by upstream libuv.
2025-02-09 13:29:38 -05:00
Martin Duffy
9689155a05
instrumentation: Add Config value to snippet data
2025-02-09 12:29:09 -05:00
Brad King
b1e37ad8bb
Tests: Port CMakeLib.testSystemTools to common infrastructure
2025-02-08 09:51:18 -05:00
Brad King
8137cf2822
Merge topic 'split-run-cmake-find_package-tests' into release-4.0
...
5ae2596027 Tests: Simplify and improve RunCMake/find_package-CPS tests
619c1bacfd Tests: Separate out CPS RunCMake/find_package tests
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Matthew Woehlke <matthew.woehlke@kitware.com >
Merge-request: !10301
2025-02-07 08:36:23 -05:00
Brad King
e74ff65385
Merge topic 'instrumentation-make-hooks' into release-4.0
...
314440c320 instrumentation: Run preBuild and postBuild hooks before and after make
6598248da7 instrumentation: Avoid busy-wait on postBuild hook
f8339cb944 instrumentation: Enable tests on more Makefile generators
0fbb927bdd instrumentation: Disable preBuild and postBuild hooks on Windows
a13be1301f Tests/RunCMake/Instrumentation: Improve quoting and escaping in CMake code
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10295
2025-02-07 08:32:04 -05:00
Matthew Woehlke
5ae2596027
Tests: Simplify and improve RunCMake/find_package-CPS tests
...
Refactor common logic out of individual RunCMake/find_package-CPS tests.
Move enabling the experimental gate to the RunCMakeTest.cmake, add a
separate test to verify the experimental warning, and suppress it
everywhere else. This will greatly simplify writing non-failure tests.
2025-02-06 15:23:09 -05:00
Matthew Woehlke
619c1bacfd
Tests: Separate out CPS RunCMake/find_package tests
...
The set of RunCMake/find_package tests is quite large, which makes
development and management less efficient. While this could probably
stand additional refactoring, split out just the CPS tests for now, as
those are currently under active development.
2025-02-06 15:23:09 -05:00
Brad King
ae68964f5d
Merge topic 'multiline-cache-help' into release-4.0
...
637a0f7ed4 cmCacheManager: Prevent corruption from multiline help strings
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10290
2025-02-06 10:39:11 -05:00
Martin Duffy
314440c320
instrumentation: Run preBuild and postBuild hooks before and after make
...
Updates the preBuild and postBuild instrumentation hooks to run before and
after make is invoked.
2025-02-06 09:49:09 -05:00
Martin Duffy
f8339cb944
instrumentation: Enable tests on more Makefile generators
2025-02-06 07:46:09 -05:00
Martin Duffy
0fbb927bdd
instrumentation: Disable preBuild and postBuild hooks on Windows
...
The implementation does not work on Windows.
Issue: #26668
2025-02-06 07:46:09 -05:00
Brad King
a13be1301f
Tests/RunCMake/Instrumentation: Improve quoting and escaping in CMake code
2025-02-06 07:45:02 -05:00
Brad King
7065e7a555
Merge topic 'instrumentation-build-hooks'
...
2680f30caf instrumentation: Allow multiple CALLBACK arguments
fc1d55f6a5 instrumentation: Add preBuild and postBuild hooks for ninja
f62a4ab2ee instrumentation: Refactor cmInstrumentation constructor and usage
c57d1752d4 cmUVProcessChain: Add Detached option for spawning daemons
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10230
2025-02-05 09:08:33 -05:00
Nikita Nemkin
637a0f7ed4
cmCacheManager: Prevent corruption from multiline help strings
...
Corruption happens when a multiline help string starts with
a newline. This causes an overflow in substr() and the whole,
unescaped help string is written to the cache file.
Multiline strings are escaped line by line. The fix is to start
searching for line break points from position 1. A break point
at zero, which triggers the overflow, could only produce
a redundant empty line.
Fixes : #9098
2025-02-05 01:26:11 +05:00
Martin Duffy
2680f30caf
instrumentation: Allow multiple CALLBACK arguments
...
Don't require quotes around CALLBACK argument and allow it to be passed
multiple times.
2025-02-04 11:15:20 -05:00
Martin Duffy
fc1d55f6a5
instrumentation: Add preBuild and postBuild hooks for ninja
...
Allows instrumentation indexing and callbacks to occur at the start or end of
every `ninja` invocation.
2025-02-04 11:15:11 -05:00
Brad King
8dfb1f40b7
Merge topic 'execute_process-cmd-bat'
...
74c9d40876 execute_process: Fix invocation of .cmd/.bat with spaces
104ca10208 cmWorkerPool: Adopt MaybePrependCmdExe calls to reduce duplication
cf7ba6d43d cmWorkerPool: Convert RunCommand signature to move semantics
c091fd1420 cmUVProcessChain: Convert AddCommand signature to move semantics
c1f6b04176 cmSystemTools: Teach MaybePrependCmdExe to always use backslashes
817b3967f8 cmSystemTools: Teach MaybePrependCmdExe to return GetShortPathNameW failure
611a3000f7 cmSystemTools: Make MaybePrependCmdExe case-insensitive
98fed0f116 cmSystemTools: Adopt MaybePrependCmdExe
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10270
2025-02-04 09:02:48 -05:00
Brad King
038c4ac93a
Merge topic 'fixargs'
...
b7a6be18c2 CommandLineTest: Fix outdated arguments
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !10279
2025-02-04 08:56:41 -05:00
Brad King
e2ab33d689
Merge topic 'instrumentation-ctest-find-labels'
...
1595713596 instrumentation: Fix expected location of Labels when using CTest launchers
d2a3d596d6 instrumentation: Fix expected location of Labels when using CTest launchers
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10264
2025-02-04 08:51:11 -05:00
Brad King
0c5898558e
Merge topic 'find-cps-components'
...
894f256a12 find_package: Find CPS components
ac20cd43c0 find_package: Fix reporting of transitive dependency errors
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10262
2025-02-03 10:07:25 -05:00
Brad King
74c9d40876
execute_process: Fix invocation of .cmd/.bat with spaces
...
The `CreateProcessW` documentation states "to run a batch file, you must
start the command interpreter". Use `cmd /c the.bat` to run batch files.
Also, use a "short path" to the `.bat` file if needed to avoid spaces.
Previously this worked in some cases only due to undocumented behavior
of `CreateProcessW` when given a `.bat` file.
Fixes : #26655
2025-02-03 09:13:26 -05:00
Martin Duffy
1595713596
instrumentation: Fix expected location of Labels when using CTest launchers
2025-02-03 09:08:44 -05:00
Vitaly Stakhovsky
b7a6be18c2
CommandLineTest: Fix outdated arguments
2025-02-02 14:55:37 -05:00
Brad King
eacc728729
Merge topic 'enum_set-enhancements'
...
77ab2446d4 enum_set enhancements, step 2
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10272
2025-02-02 07:23:15 -05:00
Brad King
d65f522a50
Merge topic 'FindRuby-compat-vars'
...
2d86cf314f FindRuby: Drop upper-case RUBY_ results in favor of Ruby_ variables
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10273
2025-02-02 07:03:10 -05:00
Brad King
2d86cf314f
FindRuby: Drop upper-case RUBY_ results in favor of Ruby_ variables
...
Add policy CMP0185 for compatibility.
Fixes : #26640
2025-02-01 07:12:30 -05:00
Matthew Woehlke
894f256a12
find_package: Find CPS components
...
Implement finding components of CPS packages. Specifically, reject any
candidate packages that don't provide all required components, and
ignore appendices that don't provide requested (required or optional)
components. This applies to both top-level searches and also searching
for package dependencies.
2025-02-01 06:44:43 -05:00
Matthew Woehlke
ac20cd43c0
find_package: Fix reporting of transitive dependency errors
...
Fix find_package to set an error message when trying to find
dependencies of a CPS package fails. This fixes the command previously
reporting "find_package unknown error" for such failures.
2025-02-01 06:20:14 -05:00
Marc Chevrier
77ab2446d4
enum_set enhancements, step 2
...
* remove support of size computation based on "magic" enum element because
Oracle SunPro compilers crash on it.
* enhance handling of enum_set with explicit size.
2025-01-31 19:14:36 +01:00
Johnny Jazeix
09d5a4d7f0
CPack: add uncompressed TAR support
...
Fixes : #26646
2025-01-31 10:11:32 -05:00
Martin Duffy
d2a3d596d6
instrumentation: Fix expected location of Labels when using CTest launchers
2025-01-30 14:07:49 -05:00
Brad King
3e64c6a56e
Merge topic 'msvc-runtime-checks'
...
2b2344b412 MSVC: Add abstraction for runtime checks
49dcd1ce5d Help: Fix MSVC_DEBUG_INFORMATION_FORMAT description of example
2f8e643d9d CMP0141: Fix documentation copied from CMP0091
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Alex <leha-bot@yandex.ru >
Merge-request: !10214
2025-01-30 08:48:01 -05:00
Brad King
0870e6c06b
Merge topic 'enum_set-enhancements'
...
35dafcb5a1 cmext/enum_set: add various enhancements to increase usability
a3ae58c9c5 C++ features: add cm::is_scoped_enum from C++23
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10248
2025-01-30 08:44:35 -05:00
Brad King
a832d31474
Merge topic 'cmake_sarif_output'
...
abbe41578d cmake: Add SARIF diagnostics output support
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Acked-by: scivision <michael@scivision.dev >
Merge-request: !10139
2025-01-30 08:43:11 -05:00
AJIOB
2b2344b412
MSVC: Add abstraction for runtime checks
...
Replace our hard-coded default for `/RTC1` with a first-class
abstraction to select runtime checks from an enumeration of logical
names. Add a `MSVC_RUNTIME_CHECKS` target property and corresponding
`CMAKE_MSVC_RUNTIME_CHECKS` variable.
Removing the old default flag requires a policy because existing
projects may rely on string processing to edit them and choose
runtime checks under the old behavior. Add policy CMP0184 to
provide compatibility.
Fixes : #26614
2025-01-29 13:07:41 -05:00
Brad King
ec7cc80370
Merge topic 'patch-lower-case-style'
...
4e6a13f211 Use lower case style for commands
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Acked-by: Alex Turbov <i.zaufi@gmail.com >
Merge-request: !10245
2025-01-29 11:37:51 -05:00
Brad King
e509c0a423
Merge topic 'patch-else'
...
9f2efc3270 Remove optional arguments from else() and end*() commands
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Acked-by: Alex Turbov <i.zaufi@gmail.com >
Merge-request: !10243
2025-01-29 11:35:30 -05:00
Brad King
bc137d6225
Merge topic 'compile_only_genex_support_object_libraries'
...
c87004fdc3 COMPILE_ONLY: Genex now stops object libraries from linking
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Acked-by: Robert Maynard <robertjmaynard@gmail.com >
Merge-request: !10240
2025-01-29 11:34:08 -05:00
Brad King
fbb69f867c
Merge topic 'FindCURL-version-var'
...
d039da1c24 FindCURL: Add CURL_VERSION variable to match upstream cmake package
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10250
2025-01-29 11:32:39 -05:00
Brad King
377707d271
Merge topic 'rbenv_support'
...
ef2c3ca828 FindRuby: Add rbenv support
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10100
2025-01-29 11:31:09 -05:00
Marc Chevrier
35dafcb5a1
cmext/enum_set: add various enhancements to increase usability
2025-01-29 16:42:52 +01:00
Daniel Tierney
abbe41578d
cmake: Add SARIF diagnostics output support
...
Closes : #26587
2025-01-29 08:43:19 -05:00
Peter Kokot
4e6a13f211
Use lower case style for commands
...
Where possible this syncs the CS for command names:
- check_c_source_compiles()
- check_cxx_compiler_flag()
- check_cxx_source_compiles()
- check_cxx_symbol_exists()
- check_include_file_cxx()
- check_include_file()
- check_include_files()
- check_library_exists()
- check_source_compiles()
- check_struct_has_member()
- check_symbol_exists()
- check_type_size()
- cmake_dependent_option()
- cmake_parse_arguments()
- feature_summary()
- file()
- find_package_handle_standard_args()
- if(), endif...
- install(FILES)
- list()
- message()
- pkg_check_modules()
- select_library_configurations()
- set_package_info()
- test_big_endian()
2025-01-28 13:51:46 -05:00
Robert Maynard
c87004fdc3
COMPILE_ONLY: Genex now stops object libraries from linking
...
Previously we didn't properly exclude $<COMPILE_ONLY:OBJECT lib>
from the right hand side of `target_link_libraries`.
Fix the update that commit 73337cb383 (LINK_LIBRARIES: Evaluate
separately for linking and usage requirements, 2022-03-22,
v3.24.0-rc1~404^2~2) made to `AddObjectEntries`.
Fixes : #26642
2025-01-28 10:01:00 -05:00
Brad King
d039da1c24
FindCURL: Add CURL_VERSION variable to match upstream cmake package
...
`find_package(CURL CONFIG)` provides `CURL_VERSION` from the upstream
cmake package version file.
Upstream curl commit `699ac9430c` (cmake: publish/check supported
protocols/features via `CURLConfig.cmake`, 2024-12-29) extends the
upstream cmake package to provide our old `CURL_VERSION_STRING`.
Provide both names from CMake's own module to aid transition.
Fixes : #26634
2025-01-28 09:52:22 -05:00
Brad King
00471550de
Merge topic 'GoogleTest-variable-expansion'
...
c7884ceefa GoogleTest: Restore support for spaces in explicit WORKING_DIRECTORY
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10192
2025-01-28 08:42:28 -05:00