OSDN Git Service

[cmake] Only attempt to install MSVC system libraries on Windows
authorShoaib Meenai <smeenai@fb.com>
Thu, 14 Dec 2017 18:41:49 +0000 (18:41 +0000)
committerShoaib Meenai <smeenai@fb.com>
Thu, 14 Dec 2017 18:41:49 +0000 (18:41 +0000)
Newer versions of CMake (I'm on 3.10, but I believe 3.9 behaves the same
way) attempt to query the system for information about the VS 2017
install. Unfortunately, this query fails on non-Windows systems:

  cmake_host_system_information does not recognize <key> VS_15_DIR

CMake isn't going to find these system libraries on non-Windows anyway
(and we were previously silencing the resultant warnings in our
cross-compilation toolchain), so it makes sense to just omit the
attempted installation entirely on non-Windows.

Differential Revision: https://reviews.llvm.org/D41220

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320724 91177308-0d34-0410-b5e6-96231b3b80d8

CMakeLists.txt
cmake/platforms/WinMsvc.cmake

index 0b0b58d..84dca6b 100644 (file)
@@ -1010,7 +1010,7 @@ if(LLVM_DISTRIBUTION_COMPONENTS)
 endif()
 
 # This allows us to deploy the Universal CRT DLLs by passing -DCMAKE_INSTALL_UCRT_LIBRARIES=ON to CMake
-if (MSVC)
+if (MSVC AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
   include(InstallRequiredSystemLibraries)
 endif()
 
index 5fd0c95..c476163 100644 (file)
@@ -299,10 +299,3 @@ set(CMAKE_SHARED_LINKER_FLAGS "${_CMAKE_SHARED_LINKER_FLAGS_INITIAL} ${LINK_FLAG
 # control which libraries they require.
 set(CMAKE_C_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
 set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
-
-# CMake's InstallRequiredSystemLibraries module searches for a Visual Studio
-# installation in order to determine where to copy the required DLLs. This
-# installation won't exist when cross-compiling, of course, so silence the
-# resulting warnings about missing libraries.
-set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
-