Restore definition of `ANDROID` and `UNIX` when `CMAKE_SYSTEM_VERSION`
is `1`. This was broken by commit 1373373823 (enable_language:
Establish target platform identification variables earlier, 2023-06-06,
v3.27.0-rc1~3^2~1).
Fixes: #25004
Protobuf changed it's version number scheme with version 21. The first number
(usually the major version) is not synchronized between compiler and library
version, but the second and third number are. See
https://protobuf.dev/news/2022-05-06/ for more details.
Fixes: #24847
7b205b7078 ci: Build macOS 10.13+ package as C++17
7f6cebb1cd ci: Split macOS 10.10+ and 10.13+ package language standard selection
aab16d4bfc ci: Drop unnecessary -stdlib flag from macOS package
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8567
Take advantage of the standard library implementations of those C++17
features available when targeting macOS 10.13. Note that the standard
library `std::filesystem` implementation is not available until 10.15.
a8679c997d Tutorial: Extend literal include to contain full code changes in solution
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8563
Refactor commit 1f39a3cd1a (Utilities/Sphinx: Restore explicit check for
Sphinx 2.x or later) to avoid needing to suppress flake8 E402. While
ignoring it with respect to the docutils/sphinx imports and the sphinx
version check was correct, the need to disable it for the whole file was
suboptimal.
This was accidentally left out of commit 2ce3d62ffb (Help: add
documentation for the new TARGET_RUNTIME_DLL_DIRS genex, 2023-02-26,
v3.27.0-rc1~400^2~2).
The test added by commit 550f63447d (ExternalProject/FetchContent:
Support relative remote URLs, 2023-04-21, v3.27.0-rc1~156^2) covers
Git-specific functionality, and requires a `git` tool to be available.
Refactoring in commit adbc8c982d (Utilities/Sphinx: Fix flake8 gripes in
cmake.py, 2023-03-13, v3.27.0-rc1~317^2) moved the assertion added by
commit cef51925a4 (Utilities/Sphinx: Require Sphinx 2.x or later,
2023-03-13, v3.27.0-rc1~317^2~2) to after imports, which is too late to
clearly reject older Sphinx versions.
Since commit 03c6ebf2b5 (Modules:Check,GenerateExportHeader: include
only what's needed, 2023-03-09, v3.27.0-rc1~327^2) some existing
projects broke because they were accidentally relying on indirect
inclusion of some check modules. For now, restore the unnecessary
includes for compatibility. They can be removed with a policy later.
Fixes: #24991
Issue: #24994
This was regressed by refactoring in commit e08ba229ee (CMake code rely
on cmList class for CMake lists management (part. 1), 2023-04-14,
v3.27.0-rc1~174^2). Fix it and add a test case.
Fixes: #24986
This handles the case where `COLOR` is set to some ANSI-like color
sequence in the ambient environment. These sequences tend to include `;`
which terminates the command and tries to use the next component
(typically an integer, possibly with a trailing `m`) with errors like:
/bin/sh: line 1: 2: command not found
/bin/sh: line 1: 255: command not found
/bin/sh: line 1: 221: command not found
/bin/sh: line 1: 255m: command not found
Also add a test that sets `COLOR` in the environment which affects the
generated Makefiles behavior.
See: https://discourse.cmake.org/t/cmake-failing-gcc-compiler-checks/8277
0e1abf7afa cmcldeps: Avoid passing /nologo more than once to RC compiler
f694e8d9c8 cmcldeps: Do not pass linker flags to cl
8600fb263b cmcldeps: Remove unused C and CXX support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8541
Previously we added fallbacks to `llvm-{ar,strip}` on Apple hosts
in case of cross-compiling because the `APPLE` platform variable
was not set w.r.t. the target platform. The platform variable
has been fixed, so remove the fallbacks.
Issue: #23333
Set target platform identification variables like `APPLE` and `LINUX`
as soon as the target system is identified. This makes them available
during toolchain and binutils selection.
Fixes: #23333
Make `CMAKE_LIBRARY_ARCHITECTURE_REGEX` available while determining
compilers before `Platform/{kFreeBSD,GNU}` is loaded.
Follow up commit cc737ae829 (Linux: Provide multiarch library directory
regex earlier, 2023-05-31).
Run the script:
Utilities/Sphinx/update_versions.py --since v3.26.0 --overwrite
Manually remove directives added to new documentation of existing
environment variables.