mirror of
https://github.com/reactos/reactos.git
synced 2024-12-26 00:54:40 +00:00
[CMAKE] Fixes for clang-cl build
- User lib.exe instead of llvm-lib due to incompatibility - Avoid wrapping resource compiler with cmcldeps - Fix several conditional flags
This commit is contained in:
parent
d74eb54b06
commit
62d1a2c884
3 changed files with 11 additions and 2 deletions
|
@ -8,7 +8,7 @@ endif()
|
||||||
|
|
||||||
include(ntos.cmake)
|
include(ntos.cmake)
|
||||||
|
|
||||||
if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
|
if(NOT MSVC)
|
||||||
# Make sure we don't duplicate some symbols
|
# Make sure we don't duplicate some symbols
|
||||||
add_compile_options(-fno-common)
|
add_compile_options(-fno-common)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -79,7 +79,7 @@ else()
|
||||||
message("WARNING: the compiler has not been recognized")
|
message("WARNING: the compiler has not been recognized")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC AND (NOT USE_CLANG_CL))
|
if(MSVC)
|
||||||
set(KDBG FALSE CACHE BOOL
|
set(KDBG FALSE CACHE BOOL
|
||||||
"Whether to compile in the integrated kernel debugger.")
|
"Whether to compile in the integrated kernel debugger.")
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||||
|
|
|
@ -24,6 +24,10 @@ if(USE_CLANG_CL)
|
||||||
set(CMAKE_CXX_COMPILER clang-cl)
|
set(CMAKE_CXX_COMPILER clang-cl)
|
||||||
# Clang now defaults to lld-link which we're not compatible with yet
|
# Clang now defaults to lld-link which we're not compatible with yet
|
||||||
set(CMAKE_LINKER link)
|
set(CMAKE_LINKER link)
|
||||||
|
# llvm-lib with link.exe can't generate proper delayed imports
|
||||||
|
set(CMAKE_AR lib)
|
||||||
|
set(CMAKE_C_COMPILER_AR lib)
|
||||||
|
set(CMAKE_CXX_COMPILER_AR lib)
|
||||||
# Explicitly set target so CMake doesn't get confused
|
# Explicitly set target so CMake doesn't get confused
|
||||||
if (ARCH STREQUAL "amd64")
|
if (ARCH STREQUAL "amd64")
|
||||||
set(CMAKE_C_COMPILER_TARGET "x86_64-pc-windows-msvc")
|
set(CMAKE_C_COMPILER_TARGET "x86_64-pc-windows-msvc")
|
||||||
|
@ -38,6 +42,11 @@ if(USE_CLANG_CL)
|
||||||
set(CMAKE_C_COMPILER_TARGET "i686-pc-windows-msvc")
|
set(CMAKE_C_COMPILER_TARGET "i686-pc-windows-msvc")
|
||||||
set(CMAKE_CXX_COMPILER_TARGET "i686-pc-windows-msvc")
|
set(CMAKE_CXX_COMPILER_TARGET "i686-pc-windows-msvc")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Avoid wrapping RC compiler with cmcldeps utility for clang-cl.
|
||||||
|
# Otherwise it breaks cross-compilation (32bit ReactOS cannot be compiled by 64bit LLVM),
|
||||||
|
# target architecture is not passed properly
|
||||||
|
set(CMAKE_NINJA_CMCLDEPS_RC OFF)
|
||||||
else()
|
else()
|
||||||
set(CMAKE_C_COMPILER cl)
|
set(CMAKE_C_COMPILER cl)
|
||||||
set(CMAKE_CXX_COMPILER cl)
|
set(CMAKE_CXX_COMPILER cl)
|
||||||
|
|
Loading…
Reference in a new issue