[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