MSYS2 and similar MinGW/MSYS distributions define development
environments with a `MSYSTEM` environment variable. Each such
environment has a documented installation prefix for its packages,
often provided by a `MSYSTEM_PREFIX` environment variable.
Since commit 84a25fc263 (cmake_host_system_information: Add
MSYSTEM_PREFIX query, 2023-09-08) we can look up this prefix.
Add `$MSYSTEM_PREFIX/local` and `$MSYSTEM_PREFIX` to our system search
prefixes when targeting MinGW under `MSYSTEM` environments. This is
their equivalent to `/usr/local` and `/usr`, which we search by default
on UNIX systems.
Issue: #24216
8ea398a7af FindMatlab: Prefer to use VersionInfo.xml to get version, fallback to run
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8760
Update the list of known versions.
Run the command
cmake -DBOOST_DIR=/path/to/boost_1_83_0 \
-P Utilities/Scripts/BoostScanDeps.cmake
to extract dependencies from the 1.83.0 source tree.
Dependencies differ from 1.82, as mentioned in the 1.83 release notes:
* Boost.Timer no longer depends on Boost.Chrono
Fixes: #25243
Parsing the version file is much faster than running Matlab.
It also improves reliability as Matlab silently quits or hangs
in some misconfigured environments.
For old Matlab, falls back to running Matlab.
also refactor file(STRINGS => file(READ as whole file was read anyway
Fixes: #25209
IntelLLVM 2023.0.0 and above emit this remark if `-g` is used without
any `-O<level>` flag, which is our default behavior. Add another flag
to suppress the remark.
The official `freetype-config.cmake` provides `Freetype::Freetype` as an
`INTERFACE` library to its exported `freetype` target. This ends up
causing issues if CMake's Find module is used to define
`Freetype::Freetype` before using `freetype-config` because some, but
not all, of its defined targets are already available triggering the
generated code that detects such situations.
Instead, try to use `freetype-config` where possible and provide bridge
logic for this module's variable guarantees.
7d7fe9981c FindMatlab: use if(IS_DIRECTORY) for directories instead of EXISTS
cf554750dd FindMatlab: no if(NOT EXIST) guard needed for file(MAKE_DIRECTORY)
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8759
Take advantage of commit d605f728f7 (macOS: Allow IMPORTED_LOCATION to
be a framework folder, 2023-06-16) to remove special-case framework
logic from find modules.
This changes link lines from `/path/to/Foo.framework/Foo[.tbd]` to
`-framework Foo`. With the latter, the linker will automatically choose
the `.tbd` if it exists.
Issue: #24946
48ee946fdc cmExperimental: recycle the C++ modules API UUID
1a1806a71b gitlab-ci: declare `bmionly` support for modules where possible
457a12f3f9 Tests/RunCMake/CXXModules: add tests which use modules from imported targets
9b9ec70b54 Ninja: generate scanning and build rules for C++20 module synthetic targets
80ef50a191 CXXModules: add a variable for BMI-only compilation
80d6544398 cxxmodules: generate synthetic targets as an initial pass
3dc6676ecc cmSyntheticTargetCache: add a struct for synthetic target caching
cb356b540c cmCxxModuleUsageEffects: add a class to capture module usage effects
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8535
If the --trust-server-cert option is given to svn without the
--non-interactive option, the command fails with an error.
Previously, --non-interactive was always added, but
b1c2cb0436 (ExternalProject: Make SVN interactive with
USES_TERMINAL_{DOWNLOAD,UPDATE}, 2022-05-06) changed
the behavior to only add it if the relevant USES_TERMINAL_...
option was set to true.
Fixes: #25197
Since commit d3c4c6d630 (VS: Import default C++ props file before
toolset-specific props file, 2023-03-01, v3.27.0-rc1~361^2) we import
`Microsoft.Cpp.Default.props` twice. Remove the extra import line, and
re-order imports as intended by the original change.
Default use of `llvm-mt` was disabled by commit 73d0d4e4b5 (BinUtils:
Avoid llvm-mt because it is missing 'mt' features we use, 2022-03-08,
v3.23.0-rc3~7^2). However, it can still be specified explicitly by the
user. Due to limitations of LLVM's command line option parser, llvm-mt
does not support arbitrary manifest files following a single switch.
Issue: #23305