[all-commits] [llvm/llvm-project] c6bd87: [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LI...
Martin Storsjö via All-commits
all-commits at lists.llvm.org
Mon Jul 17 00:24:03 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c6bd873403a8ac6538a3fe3b3c2fe39c16b146a6
https://github.com/llvm/llvm-project/commit/c6bd873403a8ac6538a3fe3b3c2fe39c16b146a6
Author: Martin Storsjö <martin at martin.st>
Date: 2023-07-17 (Mon, 17 Jul 2023)
Changed paths:
M cmake/Modules/CMakePolicy.cmake
M compiler-rt/CMakeLists.txt
M compiler-rt/lib/orc/CMakeLists.txt
M llvm/CMakeLists.txt
M llvm/cmake/modules/ChooseMSVCCRT.cmake
M llvm/docs/CMake.rst
M llvm/lib/Support/CMakeLists.txt
Log Message:
-----------
[CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour
With the new behaviour, the /MD or similar options aren't added to
e.g. CMAKE_CXX_FLAGS_RELEASE, but are added separately by CMake.
They can be changed by the cmake variable
CMAKE_MSVC_RUNTIME_LIBRARY or with the target property
MSVC_RUNTIME_LIBRARY.
LLVM has had its own custom CMake flags, e.g. LLVM_USE_CRT_RELEASE,
which affects which CRT is used for release mode builds. Deprecate
these and direct users to use CMAKE_MSVC_RUNTIME_LIBRARY directly
instead (and do a best effort attempt at setting CMAKE_MSVC_RUNTIME_LIBRARY
based on the existing LLVM_USE_CRT_ flags). This only handles the
simple cases, it doesn't handle multi-config generators with
different LLVM_USE_CRT_* variables for different configs though,
but that's probably fine - we should move over to the new upstream
CMake mechanism anyway, and push users towards that.
Change code in compiler-rt, that previously tried to override the
CRT choice to /MT, to set CMAKE_MSVC_RUNTIME_LIBRARY instead of
meddling in the old variables.
This resolves the policy issue in
https://github.com/llvm/llvm-project/issues/63286, and should
handle the issues that were observed originally when the
minimum CMake version was bumped, in
https://github.com/llvm/llvm-project/issues/62719 and
https://github.com/llvm/llvm-project/issues/62739.
Differential Revision: https://reviews.llvm.org/D155233
More information about the All-commits
mailing list