mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-11-12 14:57:20 +00:00
[client/common] windows: fix native clang-cl build
This commit is contained in:
@@ -42,6 +42,13 @@ if(LG_CLIENT_PLATFORM_WINDOWS AND MSVC AND
|
||||
"C++; use the windows-clangcl configure preset")
|
||||
endif()
|
||||
|
||||
if(LG_CLIENT_PLATFORM_WINDOWS AND MSVC AND
|
||||
NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
message(FATAL_ERROR
|
||||
"The native Windows client requires an x64 clang-cl target; remove the "
|
||||
"existing build directory and use the windows-clangcl configure preset")
|
||||
endif()
|
||||
|
||||
set(OPTIMIZE_FOR_NATIVE_DEFAULT ON)
|
||||
include(OptimizeForNative) # option(OPTIMIZE_FOR_NATIVE)
|
||||
include(UninstallTarget)
|
||||
|
||||
@@ -19,8 +19,6 @@
|
||||
"rhs": "Windows"
|
||||
},
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "clang-cl",
|
||||
"CMAKE_CXX_COMPILER": "clang-cl",
|
||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
||||
"CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreadedDLL",
|
||||
"ENABLE_AUDIO": true,
|
||||
@@ -28,6 +26,7 @@
|
||||
"ENABLE_NETWORK": true,
|
||||
"ENABLE_WASAPI": true,
|
||||
"OPTIMIZE_FOR_NATIVE": "OFF",
|
||||
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/cmake/toolchains/windows-clangcl.cmake",
|
||||
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/cmake/vcpkg-triplets",
|
||||
"VCPKG_TARGET_TRIPLET": "x64-windows-lg"
|
||||
}
|
||||
|
||||
28
client/cmake/toolchains/windows-clangcl.cmake
Normal file
28
client/cmake/toolchains/windows-clangcl.cmake
Normal file
@@ -0,0 +1,28 @@
|
||||
if(NOT DEFINED ENV{VSCMD_VER} OR
|
||||
NOT "$ENV{VSCMD_ARG_TGT_ARCH}" MATCHES "^(x64|amd64)$" OR
|
||||
NOT "$ENV{VSCMD_ARG_HOST_ARCH}" MATCHES "^(x64|amd64)$")
|
||||
message(FATAL_ERROR
|
||||
"The windows-clangcl preset requires the x64 Native Tools environment; "
|
||||
"open an x64 Native Tools command prompt and configure again")
|
||||
endif()
|
||||
|
||||
find_program(LG_WINDOWS_CLANG_CL
|
||||
NAMES clang-cl
|
||||
PATHS "$ENV{VCINSTALLDIR}/Tools/Llvm/x64/bin"
|
||||
NO_DEFAULT_PATH
|
||||
REQUIRED)
|
||||
execute_process(
|
||||
COMMAND "${LG_WINDOWS_CLANG_CL}" -print-target-triple
|
||||
RESULT_VARIABLE LG_WINDOWS_CLANG_RESULT
|
||||
OUTPUT_VARIABLE LG_WINDOWS_CLANG_TARGET
|
||||
ERROR_VARIABLE LG_WINDOWS_CLANG_ERROR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(NOT LG_WINDOWS_CLANG_RESULT EQUAL 0 OR
|
||||
NOT LG_WINDOWS_CLANG_TARGET MATCHES "^x86_64-")
|
||||
message(FATAL_ERROR
|
||||
"The x64 Native Tools environment selected an invalid clang-cl: "
|
||||
"${LG_WINDOWS_CLANG_ERROR}${LG_WINDOWS_CLANG_TARGET}")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_COMPILER "${LG_WINDOWS_CLANG_CL}" CACHE FILEPATH "" FORCE)
|
||||
set(CMAKE_CXX_COMPILER "${LG_WINDOWS_CLANG_CL}" CACHE FILEPATH "" FORCE)
|
||||
Reference in New Issue
Block a user