Add explicit cross-references for commands which optionally take an
output variable (otherwise modifying their input in-place) for clarity.
Note that `cmake_path` should not be used to modify variables reserved
by CMake.
Improve references to the "CMake-style" semicolon-separated lists, and
apply those corresponding changes to the `file` command page.
f038117687 Help/cmake-cxxmodules: note that VS generators do not support `import std`
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11682
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.
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
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
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
6d8ce8b190 VS: Accept Windows 11 SDKs as semantically equivalent to Windows 10 SDKs
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11671
6d8ce8b190 VS: Accept Windows 11 SDKs as semantically equivalent to Windows 10 SDKs
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11671
And change checks to look for a value rather than definition. This fix
keeps the same set of test cases in `RunCMake.CXXModules` selected as
before.
Fixes: #27589
In commit 85e536b5eb (gitlab-ci: test `CMAKE_CXX_STDLIB_MODULES_JSON` in
CI, 2025-09-11, v4.2.0-rc1~182^2) we intended to move the file
`libstdc++.modules.json` to a new folder, but source and destination
paths for the `file(RENAME ...)` command were the same. They both were
the original location of the file. Fix the code to move the file to the
directory created with `file(MAKE_DIRECTORY ...)`.
Fixes: #27586
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.)