[llvm] r194596 - CMake: make building with /MT an option instead of always forcing it
Hans Wennborg
hans at chromium.org
Wed Nov 13 12:34:37 PST 2013
Nice! That's all I needed.
Reverted my patches in r194604; hopefully that ends this week's cmake
dance for me :)
- Hans
On Wed, Nov 13, 2013 at 11:39 AM, Reid Kleckner <rnk at google.com> wrote:
> We already have LLVM_USE_CRT_${CMAKE_BUILD_TYPE} in
> llvm/modules/ChooseMSVCCRT.cmake, which can be any of MD, MDd, MT, MTd. Do
> we need this at all if it's going to be configurable?
>
>
> On Wed, Nov 13, 2013 at 11:12 AM, 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