mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
[CMake] Fix the clang-cl self host build.
This allows clang-cl to self-host cleanly with no magic setup steps required. After this patch, all you have to do is set CC=CXX=clang-cl and run cmake -G Ninja. These changes only exist to support C++ features which are unsupported in clang-cl, so regardless of whether the user specifies they want to use them, we still have to disable them. llvm-svn: 230539
This commit is contained in:
parent
1601d3591a
commit
e5d7d65572
@ -10,7 +10,7 @@ function(llvm_update_compile_flags name)
|
||||
|
||||
# LLVM_REQUIRES_EH is an internal flag that individual
|
||||
# targets can use to force EH
|
||||
if(LLVM_REQUIRES_EH OR LLVM_ENABLE_EH)
|
||||
if((LLVM_REQUIRES_EH OR LLVM_ENABLE_EH) AND NOT CLANG_CL)
|
||||
if(NOT (LLVM_REQUIRES_RTTI OR LLVM_ENABLE_RTTI))
|
||||
message(AUTHOR_WARNING "Exception handling requires RTTI. Enabling RTTI for ${name}")
|
||||
set(LLVM_REQUIRES_RTTI ON)
|
||||
@ -22,6 +22,10 @@ function(llvm_update_compile_flags name)
|
||||
list(APPEND LLVM_COMPILE_DEFINITIONS _HAS_EXCEPTIONS=0)
|
||||
list(APPEND LLVM_COMPILE_FLAGS "/EHs-c-")
|
||||
endif()
|
||||
if (CLANG_CL)
|
||||
# FIXME: Remove this once clang-cl supports SEH
|
||||
list(APPEND LLVM_COMPILE_DEFINITIONS "GTEST_HAS_SEH=0")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# LLVM_REQUIRES_RTTI is an internal flag that individual
|
||||
|
@ -25,6 +25,7 @@ if(NOT LLVM_FORCE_USE_OLD_TOOLCHAIN)
|
||||
if (CMAKE_CXX_SIMULATE_VERSION VERSION_LESS 18.0)
|
||||
message(FATAL_ERROR "Host Clang must have at least -fms-compatibility-version=18.0")
|
||||
endif()
|
||||
set(CLANG_CL 1)
|
||||
elseif(NOT LLVM_ENABLE_LIBCXX)
|
||||
# Otherwise, test that we aren't using too old of a version of libstdc++
|
||||
# with the Clang compiler. This is tricky as there is no real way to
|
||||
|
Loading…
x
Reference in New Issue
Block a user