mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-29 22:30:33 +00:00
CMake: make building with /MT an option instead of always forcing it
for release builds. This is a follow-up to r194589. Aaron pointed out that building libraries with /MT and using them in an application that uses a different run-time library can be a bad idea. Move the option to build with /MT behind a CMake option so it can be turned on selectively, such as when building the toolchain installer. llvm-svn: 194596
This commit is contained in:
parent
1594297410
commit
2390fdb13b
@ -17,6 +17,8 @@ set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}svn")
|
||||
|
||||
option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF)
|
||||
|
||||
option(LLVM_STATIC_MSVC_RUNTIME "When using MSVC, link against the static run-time (/MT)" OFF)
|
||||
|
||||
option(LLVM_USE_FOLDERS "Enable solution folders in Visual Studio. Disable for Express versions." ON)
|
||||
if ( LLVM_USE_FOLDERS )
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
@ -41,13 +41,16 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
# Link release builds against the static runtime.
|
||||
if(MSVC AND LLVM_STATIC_MSVC_RUNTIME)
|
||||
# Link against the static runtime.
|
||||
foreach(flag CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_MINSIZEREL)
|
||||
llvm_replace_compiler_option("${flag}" "/MD" "/MT")
|
||||
endforeach()
|
||||
foreach(flag CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG)
|
||||
llvm_replace_compiler_option("${flag}" "/MDd" "/MTd")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
|
@ -280,6 +280,11 @@ LLVM-specific variables
|
||||
are ``Address``, ``Memory`` and ``MemoryWithOrigins``. Defaults to empty
|
||||
string.
|
||||
|
||||
**LLVM_STATIC_MSVC_RUNTIME**:BOOL
|
||||
When building with MSVC, link against the static runtime library (/MT or /MTd
|
||||
for release and debug builds, respectively) instead of the dynamic one.
|
||||
Defaults to OFF.
|
||||
|
||||
Executing the test suite
|
||||
========================
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user