[PATCH] D97451: [PR48898][CMake] Support MinGW Toolchain tools in llvm_ExternalProject_Add
Markus Böck via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 25 02:15:39 PST 2021
zero9178 updated this revision to Diff 326328.
zero9178 marked an inline comment as done.
zero9178 added a comment.
Addressed reviewers comments:
Corrected appending the correct tools to ARG_TOOLCHAIN_TOOLS in the case when use_mingw_toolchain_tools is set.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D97451/new/
https://reviews.llvm.org/D97451
Files:
llvm/cmake/modules/LLVMExternalProjectUtils.cmake
Index: llvm/cmake/modules/LLVMExternalProjectUtils.cmake
===================================================================
--- llvm/cmake/modules/LLVMExternalProjectUtils.cmake
+++ llvm/cmake/modules/LLVMExternalProjectUtils.cmake
@@ -46,9 +46,19 @@
${ARGN})
canonicalize_tool_name(${name} nameCanon)
+ if (MINGW)
+ set(use_mingw_toolchain_tools ON)
+ endif()
+
foreach(arg ${ARG_CMAKE_ARGS})
if(arg MATCHES "^-DCMAKE_SYSTEM_NAME=")
string(REGEX REPLACE "^-DCMAKE_SYSTEM_NAME=(.*)$" "\\1" _cmake_system_name "${arg}")
+ elseif (arg MATCHES "^-DCMAKE_(C|ASM|CXX)_COMPILER_TARGET=(.*)-windows-(gnu|msvc).*$")
+ if (${CMAKE_MATCH_3} STREQUAL "msvc")
+ set(use_mingw_toolchain_tools OFF)
+ else()
+ set(use_mingw_toolchain_tools ON)
+ endif ()
endif()
endforeach()
@@ -65,7 +75,7 @@
list(APPEND ARG_TOOLCHAIN_TOOLS 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)
+ elseif(_cmake_system_name STREQUAL Windows AND NOT use_mingw_toolchain_tools)
list(APPEND ARG_TOOLCHAIN_TOOLS llvm-lib)
else()
# TODO: These tools don't fully support Mach-O format yet.
@@ -138,7 +148,7 @@
if(ARG_USE_TOOLCHAIN AND NOT CMAKE_CROSSCOMPILING)
if(CLANG_IN_TOOLCHAIN)
- if(_cmake_system_name STREQUAL Windows)
+ if(_cmake_system_name STREQUAL Windows AND NOT use_mingw_toolchain_tools)
set(compiler_args -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang-cl${CMAKE_EXECUTABLE_SUFFIX}
-DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang-cl${CMAKE_EXECUTABLE_SUFFIX}
-DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang-cl${CMAKE_EXECUTABLE_SUFFIX})
@@ -149,14 +159,14 @@
endif()
endif()
if(lld IN_LIST TOOLCHAIN_TOOLS)
- if(_cmake_system_name STREQUAL Windows)
+ if(_cmake_system_name STREQUAL Windows AND NOT use_mingw_toolchain_tools)
list(APPEND compiler_args -DCMAKE_LINKER=${LLVM_RUNTIME_OUTPUT_INTDIR}/lld-link${CMAKE_EXECUTABLE_SUFFIX})
elseif(NOT _cmake_system_name STREQUAL Darwin)
list(APPEND compiler_args -DCMAKE_LINKER=${LLVM_RUNTIME_OUTPUT_INTDIR}/ld.lld${CMAKE_EXECUTABLE_SUFFIX})
endif()
endif()
if(llvm-ar IN_LIST TOOLCHAIN_TOOLS)
- if(_cmake_system_name STREQUAL Windows)
+ if(_cmake_system_name STREQUAL Windows AND NOT use_mingw_toolchain_tools)
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})
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97451.326328.patch
Type: text/x-patch
Size: 2828 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210225/72f91bcd/attachment.bin>
More information about the llvm-commits
mailing list