From ef39abc38d61bd748acc8477ef8dff205078e861 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 18 Mar 2022 22:05:23 -0700 Subject: [PATCH] Fix CMake issues with ARM --- CMakeLists.txt | 8 ++++++-- CMakePresets.json | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 200045b..e87e9d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,6 +38,10 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/CMake") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/CMake") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/CMake") +if (DEFINED VCPKG_TARGET_ARCHITECTURE) + set(DIRECTX_ARCH ${VCPKG_TARGET_ARCHITECTURE}) +endif() + #--- Library set(LIBRARY_HEADERS DirectXTex/DirectXTex.h @@ -241,7 +245,7 @@ if(MSVC) target_compile_options(texdiag PRIVATE /fp:fast) endif() - if ((${CMAKE_SIZEOF_VOID_P} EQUAL "4") AND (NOT ${CMAKE_VS_PLATFORM_NAME} MATCHES "arm")) + if((${CMAKE_SIZEOF_VOID_P} EQUAL 4) AND (NOT ${DIRECTX_ARCH} MATCHES "arm")) target_compile_options(${PROJECT_NAME} PRIVATE /arch:SSE2) if(BUILD_TOOLS AND WIN32 AND (NOT WINDOWS_STORE)) target_compile_options(texassemble PRIVATE /arch:SSE2) @@ -299,7 +303,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") endif() endif() - if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.27) + if ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.27) AND (NOT (${DIRECTX_ARCH} MATCHES "arm(64)?"))) if(BUILD_TOOLS AND WIN32 AND (NOT WINDOWS_STORE)) target_link_options(texassemble PRIVATE /CETCOMPAT) target_link_options(texconv PRIVATE /CETCOMPAT) diff --git a/CMakePresets.json b/CMakePresets.json index aa1a80b..a814f03 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -17,6 +17,7 @@ "value": "x64", "strategy": "external" }, + "cacheVariables": { "DIRECTX_ARCH": "x64" }, "hidden": true }, { @@ -25,6 +26,7 @@ "value": "x86", "strategy": "external" }, + "cacheVariables": { "DIRECTX_ARCH": "x86" }, "hidden": true }, { @@ -33,6 +35,7 @@ "value": "arm", "strategy": "external" }, + "cacheVariables": { "DIRECTX_ARCH": "arm" }, "hidden": true }, { @@ -41,6 +44,7 @@ "value": "arm64", "strategy": "external" }, + "cacheVariables": { "DIRECTX_ARCH": "arm64" }, "hidden": true },