[llvm] r194596 - CMake: make building with /MT an option instead of always forcing it
Hans Wennborg
hans at chromium.org
Wed Nov 13 11:19:17 PST 2013
No problem, thanks for catching this!
- Hans
On Wed, Nov 13, 2013 at 11:17 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
> Thanks Hans!
>
> ~Aaron
>
> On Wed, Nov 13, 2013 at 2:12 PM, Hans Wennborg <hans at hanshq.net> wrote:
>> Author: hans
>> Date: Wed Nov 13 13:12:02 2013
>> New Revision: 194596
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=194596&view=rev
>> Log:
>> 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.
>>
>> Modified:
>> llvm/trunk/CMakeLists.txt
>> llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
>> llvm/trunk/docs/CMake.rst
>>
>> Modified: llvm/trunk/CMakeLists.txt
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=194596&r1=194595&r2=194596&view=diff
>> ==============================================================================
>> --- llvm/trunk/CMakeLists.txt (original)
>> +++ llvm/trunk/CMakeLists.txt Wed Nov 13 13:12:02 2013
>> @@ -17,6 +17,8 @@ set(PACKAGE_VERSION "${LLVM_VERSION_MAJO
>>
>> 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)
>>
>> Modified: llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake?rev=194596&r1=194595&r2=194596&view=diff
>> ==============================================================================
>> --- llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (original)
>> +++ llvm/trunk/cmake/modules/HandleLLVMOptions.cmake Wed Nov 13 13:12:02 2013
>> @@ -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)
>>
>> Modified: llvm/trunk/docs/CMake.rst
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CMake.rst?rev=194596&r1=194595&r2=194596&view=diff
>> ==============================================================================
>> --- llvm/trunk/docs/CMake.rst (original)
>> +++ llvm/trunk/docs/CMake.rst Wed Nov 13 13:12:02 2013
>> @@ -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
>> ========================
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list