mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-11-12 23:07:21 +00:00
Build the Windows client against the MSVC ABI while retaining clang language support. Use vcpkg for ANGLE and libsamplerate, and build MsQuic with its bundled static OpenSSL.
50 lines
1.8 KiB
CMake
50 lines
1.8 KiB
CMake
set(OPTIMIZE_FOR_NATIVE AUTO CACHE STRING "Build with -march=native")
|
|
set_property(CACHE OPTIMIZE_FOR_NATIVE PROPERTY STRINGS AUTO ON OFF)
|
|
|
|
set(OPTIMIZE_FOR_NATIVE_ARCH "none")
|
|
if(MSVC AND CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
|
set(OPTIMIZE_FOR_NATIVE_PREFIX "/clang:-march=")
|
|
elseif(MSVC)
|
|
set(OPTIMIZE_FOR_NATIVE_PREFIX "")
|
|
else()
|
|
set(OPTIMIZE_FOR_NATIVE_PREFIX "-march=")
|
|
endif()
|
|
|
|
if(NOT OPTIMIZE_FOR_NATIVE_PREFIX)
|
|
if(OPTIMIZE_FOR_NATIVE STREQUAL "ON" OR
|
|
NOT OPTIMIZE_FOR_NATIVE MATCHES "^(AUTO|OFF)$")
|
|
message(WARNING
|
|
"OPTIMIZE_FOR_NATIVE is not supported by ${CMAKE_C_COMPILER_ID}")
|
|
endif()
|
|
elseif(OPTIMIZE_FOR_NATIVE STREQUAL "ON" OR
|
|
(OPTIMIZE_FOR_NATIVE STREQUAL "AUTO" AND OPTIMIZE_FOR_NATIVE_DEFAULT))
|
|
CHECK_C_COMPILER_FLAG("${OPTIMIZE_FOR_NATIVE_PREFIX}native"
|
|
COMPILER_SUPPORTS_MARCH_NATIVE)
|
|
if(COMPILER_SUPPORTS_MARCH_NATIVE)
|
|
set(OPTIMIZE_FOR_NATIVE_ARCH "native")
|
|
set(OPTIMIZE_FOR_NATIVE_ON ON)
|
|
endif()
|
|
elseif(OPTIMIZE_FOR_NATIVE STREQUAL "AUTO" OR OPTIMIZE_FOR_NATIVE STREQUAL "OFF")
|
|
CHECK_C_COMPILER_FLAG("${OPTIMIZE_FOR_NATIVE_PREFIX}x86-64-v2"
|
|
COMPILER_SUPPORTS_MARCH_X86_64_V2)
|
|
if(COMPILER_SUPPORTS_MARCH_X86_64_V2)
|
|
set(OPTIMIZE_FOR_NATIVE_ARCH "x86-64-v2")
|
|
else()
|
|
CHECK_C_COMPILER_FLAG("${OPTIMIZE_FOR_NATIVE_PREFIX}nehalem"
|
|
COMPILER_SUPPORTS_MARCH_NEHALEM)
|
|
if(COMPILER_SUPPORTS_MARCH_NEHALEM)
|
|
set(OPTIMIZE_FOR_NATIVE_ARCH "nehalem")
|
|
endif()
|
|
endif()
|
|
else()
|
|
set(OPTIMIZE_FOR_NATIVE_ARCH "${OPTIMIZE_FOR_NATIVE}")
|
|
set(OPTIMIZE_FOR_NATIVE_ON ON)
|
|
endif()
|
|
|
|
if(NOT OPTIMIZE_FOR_NATIVE_ARCH STREQUAL "none")
|
|
add_compile_options(
|
|
"${OPTIMIZE_FOR_NATIVE_PREFIX}${OPTIMIZE_FOR_NATIVE_ARCH}")
|
|
endif()
|
|
|
|
add_feature_info(OPTIMIZE_FOR_NATIVE OPTIMIZE_FOR_NATIVE_ON "Optimized for ${OPTIMIZE_FOR_NATIVE_ARCH}")
|