Commit Graph
38942 Commits
Author SHA1 Message Date
Kitware Robot 16c8ec8ec7 CMake Nightly Date Stamp 2026-02-14 00:14:03 -05:00
Brad King 32bd370b6b Merge topic 'ctest-test-start-time'
fd55647d16 ctest: Record `StartTestTime` entry for each test in Test.xml

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11684
2026-02-13 09:55:33 -05:00
Brad King 84aff9588f Merge topic 'remove-cps-experimental-gate'
f5c515cbf2 CPS: Remove experimental gate (mostly)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11683
2026-02-13 09:51:24 -05:00
Kitware Robot 17aaf26a26 CMake Nightly Date Stamp 2026-02-13 00:09:52 -05:00
Joseph Snyder fd55647d16 ctest: Record StartTestTime entry for each test in Test.xml
Capture the time at which each test was started.  The time should be in
milliseconds to allow quick test runs to be differentiated.

Fixes: #26859
2026-02-12 14:40:04 -05:00
Brad King 477dd9a061 Merge topic 'fbuild_unity_subdirs'
3f43795df9 FASTBuild: Allow files in different subdirs to be in the same unity bucket

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Eduard Voronkin <edward.voronkin@gmail.com>
Merge-request: !11679
2026-02-12 11:04:34 -05:00
Kitware Robot c3a18b6dd8 CMake Nightly Date Stamp 2026-02-12 00:11:33 -05:00
Matthew Woehlke f5c515cbf2 CPS: Remove experimental gate (mostly)
Remove basic CPS import and export from 'experimental' status. Update
documentation and tests accordingly.

Note that mapped exports (CMAKE_EXPERIMENTAL_MAPPED_PACKAGE_INFO) are
still experimental.
2026-02-11 16:10:29 -05:00
Andrew Maher 3f43795df9 FASTBuild: Allow files in different subdirs to be in the same unity bucket
The FASTBuild generator puts source files from different subdirectories
into different `FastbuildObjectListNode` instances. This ensures that
files with the same name will not write to the same object file. A unity
bucket can only contain files from a single `FastbuildObjectListNode`
instance, so a side effect of this logic is that unity buckets can only
contain files in the same subdirectory. This change fixes the problem by
skipping the subdirectory check logic for files with unity enabled.

Fixes: #27457
2026-02-11 14:38:22 -05:00
Brad King 9d2fc99a95 Merge topic 'cmake-locale-query'
b02ae60a76 cmake_host_system_information: Add query for the locale's charset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11648
2026-02-11 12:41:12 -05:00
Brad King 1ebfb6cb03 Merge topic 'cmake-locale'
d284ce2fd6 Initialize character set encoding on program startup
6ec707312d Make character classification locale-independent
ea47c154e5 Make case-dependent operations locale-independent
c81909f842 Merge branch 'upstream-KWSys' into cmake-locale
5a187b69e7 KWSys 2026-02-11 (dcab76ba)
55842d16ac cmFileCommand: Adopt `file://` URL compatibility helper
6fe7acfe1d curl: Build with support for wide-character filesystem APIs on Windows
9a2ebd7f25 Tests: Add RunCMake.string case covering TOLOWER and TOUPPER with UTF-8
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Overchenko <aleksandr9809@gmail.com>
Merge-request: !11647
2026-02-11 12:39:36 -05:00
Brad King a92c9d30ae Merge topic 'cps-dyld-properties'
9fa2b5dd99 CPS: Support importing `link_libraries`
3071bc6c87 CPS: Support importing "link dependent libraries".
92a0abd164 CPS: Support exporting "link dependent libraries".
93891e27cb cmExportPackageInfoGenerator: Refactor extracting requirements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11667
2026-02-11 12:08:32 -05:00
Brad King 43375ad8f8 Merge topic 'per-importer-bmi'
5c00749c5d cmCxxModuleUsageEffects: Collect and apply BMI compatibility requirements
5898c8d2e0 cxxmodules: Generate per-importer BMIs for native targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vito Gamberini <vito.gamberini@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !11561
2026-02-11 12:03:15 -05:00
Brad King b02ae60a76 cmake_host_system_information: Add query for the locale's charset
Issue: #27562
2026-02-11 11:56:05 -05:00
Brad King d284ce2fd6 Initialize character set encoding on program startup
libarchive uses `nl_langinfo(CODESET)` as the host's encoding to convert
path names to/from the archive's encoding.  Since commit cd408d93fd (Add
setlocale() calls around use of libarchive APIs, 2015-02-06, v3.1.3~2^2)
we've set `LC_CTYPE` using a scoped locale around libarchive calls to
avoid affecting character classification in the rest of the program.

We've since updated the rest of our code to be locale-independent.
Replace the scoped locale with a single locale established at program
startup.  This is more efficient and avoids mutating global state.

Issue: #27562
2026-02-11 11:55:59 -05:00
Brad King 6ec707312d Make character classification locale-independent
Use ASCII-only ctype operations provided by KWSys String.
These match the "C" locale in which `cmake` has long run.
2026-02-11 11:55:54 -05:00
Brad King ea47c154e5 Make case-dependent operations locale-independent
Use ASCII-only ctype operations provided by KWSys String.
These match the "C" locale in which `cmake` has long run.
2026-02-11 11:55:50 -05:00
Brad King c81909f842 Merge branch 'upstream-KWSys' into cmake-locale
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2026-02-11 (dcab76ba)
2026-02-11 11:54:22 -05:00
Brad King 9686a367df Merge topic 'vs-win11-sdk'
6d8ce8b190 VS: Accept Windows 11 SDKs as semantically equivalent to Windows 10 SDKs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11671
2026-02-11 11:53:22 -05:00
Brad King 57346991aa Merge topic 'vs-win11-sdk' into release-4.2
6d8ce8b190 VS: Accept Windows 11 SDKs as semantically equivalent to Windows 10 SDKs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11671
2026-02-11 11:53:20 -05:00
Kitware Robot a4d059ca3a CMake Nightly Date Stamp 2026-02-11 00:12:15 -05:00
Brad King 8d251cc54a Merge topic 'fastbuild-imported-objlib'
67dc1dff7c FASTBuild: fix imported object libs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11670
2026-02-10 11:32:08 -05:00
Brad King c940e270e6 Merge topic 'fastbuild-imported-objlib' into release-4.2
67dc1dff7c FASTBuild: fix imported object libs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11670
2026-02-10 11:32:07 -05:00
Brad King adb51b1e4e Merge topic 'fix-ctest-instrumentation-output'
63165db061 instrumentation: Fix ctest output of Build.xml when targets have labels

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11673
2026-02-10 11:29:40 -05:00
Matthew Woehlke 9fa2b5dd99 CPS: Support importing link_libraries
Teach CPS import to read the `link_libraries` attribute. We've exported
this for a long time, but apparently the code to read it back was never
implemented. (To be fair, use of this attribute is discouraged.)
2026-02-10 10:17:35 -05:00
Matthew Woehlke 3071bc6c87 CPS: Support importing "link dependent libraries".
Teach CPS import to read the `dyld_requires` attribute.

Fixes: #27501
2026-02-10 10:17:17 -05:00
Eduard Voronkin 67dc1dff7c FASTBuild: fix imported object libs
Fixes: #27507
2026-02-10 09:22:09 -05:00
Kitware Robot 6a544a62e5 CMake Nightly Date Stamp 2026-02-10 00:12:56 -05:00
Matthew Woehlke 92a0abd164 CPS: Support exporting "link dependent libraries".
Teach CPS export to fill the `dyld_requires` attribute based on the
equivalent of the `IMPORTED_LINK_DEPENDENT_LIBRARIES` CMake property.
(Note that, in practice, I don't believe this can ever contain
non-targets, and CPS does not anyway support the `dyld_libraries`
attribute that those would require at this time.

Issue: #27501
2026-02-09 16:59:46 -05:00
Daniel Tierney 5c00749c5d cmCxxModuleUsageEffects: Collect and apply BMI compatibility requirements
This gathers properties and other details affecting Built Module Interface (BMI)
compatibility for C++ module importers and applies them as necessary to
synthetic targets, which represent a specific module import scenario.
2026-02-09 14:16:18 -05:00
Daniel Tierney 5898c8d2e0 cxxmodules: Generate per-importer BMIs for native targets
C++ module importers may have specific usage requirements that differ from
other importers of the same module, potentially requiring separate Built Module
Interfaces (BMIs) for compatibility. CMake creates synthetic targets to
generate and link usage-specific BMIs. This change extends CMake's per-importer
BMI generation to native targets in addition to imported targets.
2026-02-09 14:16:17 -05:00
Sylvain Joubert 63165db061 instrumentation: Fix ctest output of Build.xml when targets have labels
Fixes #27585
2026-02-09 18:15:28 +01:00
Brad King 6d8ce8b190 VS: Accept Windows 11 SDKs as semantically equivalent to Windows 10 SDKs
Fixes: #25232
2026-02-09 11:36:29 -05:00
Matthew Woehlke 93891e27cb cmExportPackageInfoGenerator: Refactor extracting requirements
Refactor the helper that parses requirement lists from a lambda to a
freestanding member function. This will enable its use in other code.
2026-02-09 10:11:46 -05:00
Brad King 55842d16ac cmFileCommand: Adopt file:// URL compatibility helper
Migrate the helper back from `cmCurl` because its only remaining
functionality is specific to the `file(DOWNLOAD)` and `file(UPLOAD)`
commands.
2026-02-09 10:04:59 -05:00
Brad King 6fe7acfe1d curl: Build with support for wide-character filesystem APIs on Windows
Curl 7.71 added an option to open files on Windows using wide APIs.  See
curl commit `ffdddb45d9` (curl_setup: support Unicode functions to open
files on Windows, 2020-01-02, `curl-7_71_0~148`).  When enabled, curl's
own narrow APIs expect UTF-8 because that is what their command-line
tool uses internally.  See curl commit `9e5669f388` (tool: support
UTF-16 command line on Windows, 2019-04-12, `curl-7_71_0~149`).

Revert our previous workaround from commit e63dcb1378 (Encoding: Use
encoding libcurl expects with file: urls, 2014-11-05, v3.2.0-rc1~420^2)
in favor of passing URLs to curl encoded as UTF-8.
2026-02-09 10:04:59 -05:00
Kitware Robot ac1c4a611d CMake Nightly Date Stamp 2026-02-09 00:11:18 -05:00
Brad King 860ba3d6b5 Merge topic 'update-kwsys'
51e3b1b4b2 cmSystemTools: Simplify string case conversion methods
bc89442828 Merge branch 'upstream-KWSys' into update-kwsys
f4258b93d2 KWSys 2026-02-08 (29120a5d)
85a4d0cde7 cmList: Simplify overload selection for function pointer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11669
2026-02-08 09:29:02 -05:00
Brad King 51e3b1b4b2 cmSystemTools: Simplify string case conversion methods
Take advantage of KWSys SystemTools' new move semantics.
2026-02-08 09:21:58 -05:00
Brad King bc89442828 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2026-02-08 (29120a5d)
2026-02-08 09:21:44 -05:00
Brad King e686b86649 Merge topic 'import-std-no-experimental'
70c1f0f43d Experimental: Remove import std experimental gate

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11657
2026-02-08 09:18:01 -05:00
Kitware Robot 7728460b0b CMake Nightly Date Stamp 2026-02-08 00:06:55 -05:00
Brad King 85a4d0cde7 cmList: Simplify overload selection for function pointer 2026-02-07 10:30:46 -05:00
Brad King b0bcc6c7c0 Merge topic 'UseMoreStringViews'
70509802f5 cmSystemTools: Fix clang tidy warning else after return
d932b6fb8d Prefer cmHasSuffix for specific extension checks
35af170961 cmSystemTools: Take view instead of ref as parameter
9daa1012d4 cmGlobalGenerator: Avoid string copies by returning view
e531e7420d Reduce string copies by using View function alternatives
62a4099fd2 cmGeneratorTarget: Cache GetAllConfigCompileLanguages
6ed75b1fe6 cmGlobalGenerator: Use transparent comparator to avoid string copies
9a575a835f cmPropertyDefinition: Avoid string copies for Property lookups
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11634
2026-02-07 09:33:34 -05:00
Brad King 630a390cf1 Merge topic 'ctype-casts'
05ed2af7da Avoid signed char-to-int conversions in tolower/toupper calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11666
2026-02-07 09:31:40 -05:00
Brad King a59a6c2ca0 Merge topic 'rust-support'
5c1b0a6b7e Rust: Add experimental support with Ninja
3fe1e45584 ci: Add rustc to Fedora base image

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michał Walenciak <michalwalenciak@gmail.com>
Merge-request: !11389
2026-02-07 09:30:19 -05:00
Brad King 417d83fc3c Merge topic 'install-dir-empty'
4e7e6928cb install: Fix bugs around empty directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11660
2026-02-07 09:27:03 -05:00
Vito Gamberini 70c1f0f43d Experimental: Remove import std experimental gate
Fixes: #27571
2026-02-07 09:03:43 -05:00
Kitware Robot 4a173320e2 CMake Nightly Date Stamp 2026-02-07 00:10:14 -05:00
John Franklin Rickard 70509802f5 cmSystemTools: Fix clang tidy warning else after return
warning: readability-else-after-return.
Also invert the if/else logic to avoid double negatives.
2026-02-06 12:27:23 -05:00