Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit df6f93a430449816d1d8c112d0743cf30601c5b7 (master).
Upstream Shortlog
-----------------
Brad King (1):
199aa713 RegularExpression: Tell clang-analyzer that program memory is initialized
80181da866 Tests: Add option to control timeout of BootstrapTest
21df34b255 Tests: Modernize name of option to control existence of BootstrapTest
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8491
d38779df2a ci: Enable RunCMake.CXXModules collation cases in clang jobs
69e4525241 Tests/CXXModules: add example for private modules between targets
18f87c87f8 cmCxxModuleMapper: track whether modules are private or not
56f7d6f827 cmCxxModuleMapper: add a structure to represent BMI locations
8207a3a266 cmDyndepCollation: add a query for visibility of an object's modules
e8efcbec8c iwyu: ignore `std::remove_reference` requirements
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8476
51c343b788 ci: Enable C++20 module testing with VS 2022 on ARM64
406a103318 VS: Add support for C++ module internal partitions in VS 17.6 and newer
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8471
When the user has specified the OpenSSL installation root directory,
through the variable OPENSSL_ROOT_DIR or the environment variable with
the same name, trust it, don't try to find OpenSSL anywhere else.
Fixes: #18352
Since commit 069a32b03c (Tests/RunCMake/CXXModules: split out
collation-requiring tests, 2022-11-28, v3.26.0-rc1~243^2~4)
these cases require explicit configuration.
This allows collation to give a useful error message when it finds usage
of a private module rather than collation just not informing the
compilation and the compiler erroring out about not being able to import
unknown modules (which exists, but it was not told about due to
visibility).
Fixes: #24652
This structure allows representing whether a module is private in order
to give a more useful error message when its usage is attempted from
another target.
VS 17.6 now implements `ScanSourceforModuleDependencies` using the same
`cl /scanDependencies` scanner that our Ninja generator uses. It can
distinguish module internal partitions from module interface units based
on their content. Switch from `CompileAsCppModule` to `CompileAsCpp`
for `CXX_MODULES` sources so that MSBuild can scan and classify them.