[llvm] ee7ee71 - Explicitly specify CMAKE_AR in WinMsvc.cmake
Shoaib Meenai via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 23 18:06:08 PDT 2020
Author: Gwen Mittertreiner
Date: 2020-09-23T18:05:29-07:00
New Revision: ee7ee71f40e904a8380d6439ac4741304b4a2dfd
URL: https://github.com/llvm/llvm-project/commit/ee7ee71f40e904a8380d6439ac4741304b4a2dfd
DIFF: https://github.com/llvm/llvm-project/commit/ee7ee71f40e904a8380d6439ac4741304b4a2dfd.diff
LOG: Explicitly specify CMAKE_AR in WinMsvc.cmake
As of cmake 3.18, cmake changes how it searches for compilers for
Windows (see
https://gitlab.kitware.com/cmake/cmake/-/commit/55196a1440e26917d40e6a7a3eb8d9fb323fa657)
and now finds llvm-ar instead of llvm-lib as CMAKE_AR. This explicitly
specifies CMAKE_AR as llvm-lib so the correct program is found.
Reviewed By: smeenai
Differential Revision: https://reviews.llvm.org/D88176
Added:
Modified:
llvm/cmake/modules/LLVMExternalProjectUtils.cmake
llvm/cmake/platforms/WinMsvc.cmake
Removed:
################################################################################
diff --git a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake
index db3a536b0c24..c01a6dd71d9f 100644
--- a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake
+++ b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake
@@ -56,6 +56,8 @@ function(llvm_ExternalProject_Add name source_dir)
set(ARG_TOOLCHAIN_TOOLS clang lld llvm-ar llvm-ranlib llvm-nm llvm-objdump)
if(_cmake_system_name STREQUAL Darwin)
list(APPEND ARG_TOOLCHAIN_TOOLS llvm-libtool-darwin llvm-lipo)
+ elseif(_cmake_system_name STREQUAL Windows)
+ list(APPEND ARG_TOOLCHAIN_TOOLS llvm-lib)
else()
# TODO: These tools don't fully support Mach-O format yet.
list(APPEND ARG_TOOLCHAIN_TOOLS llvm-objcopy llvm-strip)
@@ -144,7 +146,11 @@ function(llvm_ExternalProject_Add name source_dir)
endif()
endif()
if(llvm-ar IN_LIST TOOLCHAIN_TOOLS)
- list(APPEND compiler_args -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar${CMAKE_EXECUTABLE_SUFFIX})
+ if(_cmake_system_name STREQUAL Windows)
+ list(APPEND compiler_args -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-lib${CMAKE_EXECUTABLE_SUFFIX})
+ else()
+ list(APPEND compiler_args -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar${CMAKE_EXECUTABLE_SUFFIX})
+ endif()
endif()
if(llvm-libtool-darwin IN_LIST TOOLCHAIN_TOOLS)
list(APPEND compiler_args -DCMAKE_LIBTOOL=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-libtool-darwin${CMAKE_EXECUTABLE_SUFFIX})
diff --git a/llvm/cmake/platforms/WinMsvc.cmake b/llvm/cmake/platforms/WinMsvc.cmake
index 6b78b069dbf9..4a6bef2e01cc 100644
--- a/llvm/cmake/platforms/WinMsvc.cmake
+++ b/llvm/cmake/platforms/WinMsvc.cmake
@@ -232,6 +232,7 @@ endif()
set(CMAKE_C_COMPILER "${LLVM_NATIVE_TOOLCHAIN}/bin/clang-cl" CACHE FILEPATH "")
set(CMAKE_CXX_COMPILER "${LLVM_NATIVE_TOOLCHAIN}/bin/clang-cl" CACHE FILEPATH "")
set(CMAKE_LINKER "${LLVM_NATIVE_TOOLCHAIN}/bin/lld-link" CACHE FILEPATH "")
+set(CMAKE_AR "${LLVM_NATIVE_TOOLCHAIN}/bin/llvm-lib" CACHE FILEPATH "")
# Even though we're cross-compiling, we need some native tools (e.g. llvm-tblgen), and those
# native tools have to be built before we can start doing the cross-build. LLVM supports
More information about the llvm-commits
mailing list