From 38f8b04c049e09b8f29a03de3fe2e6a272549a35 Mon Sep 17 00:00:00 2001 From: Collecting Date: Mon, 3 Nov 2025 13:37:12 +0000 Subject: [PATCH] add: ARM64 support for Windows Signed-off-by: Collecting --- CMakeLists.txt | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57526c324..be1f161d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -571,21 +571,25 @@ list(APPEND CITRON_QT_COMPONENTS2 Multimedia) # find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the citron_find_package if (ENABLE_SDL2) if (CITRON_USE_BUNDLED_SDL2) - # Detect toolchain and platform - if ((MSVC_VERSION GREATER_EQUAL 1920 AND ARCHITECTURE_x86_64)) - set(SDL2_VER "SDL2-2.28.2") - else() - message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable CITRON_USE_BUNDLED_SDL2 and provide your own.") - endif() + # Detect toolchain and platform + if (MSVC_VERSION GREATER_EQUAL 1920 AND ARCHITECTURE_x86_64) + set(SDL2_VER "SDL2-2.28.2") + set(SDL2_ARCH_DIR "x64") + elseif (MSVC_VERSION GREATER_EQUAL 1920 AND ARCHITECTURE_arm64) + set(SDL2_VER "SDL2-2.28.2") + set(SDL2_ARCH_DIR "arm64") + else() + message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable CITRON_USE_BUNDLED_SDL2 and provide your own.") + endif() - if (DEFINED SDL2_VER) - download_bundled_external("sdl2/" ${SDL2_VER} SDL2_PREFIX) - endif() + if (DEFINED SDL2_VER) + download_bundled_external("sdl2/" ${SDL2_VER} SDL2_PREFIX) + endif() - set(SDL2_FOUND YES) - set(SDL2_INCLUDE_DIR "${SDL2_PREFIX}/include" CACHE PATH "Path to SDL2 headers") - set(SDL2_LIBRARY "${SDL2_PREFIX}/lib/x64/SDL2.lib" CACHE PATH "Path to SDL2 library") - set(SDL2_DLL_DIR "${SDL2_PREFIX}/lib/x64/" CACHE PATH "Path to SDL2.dll") + set(SDL2_FOUND YES) + set(SDL2_INCLUDE_DIR "${SDL2_PREFIX}/include" CACHE PATH "Path to SDL2 headers") + set(SDL2_LIBRARY "${SDL2_PREFIX}/lib/${SDL2_ARCH_DIR}/SDL2.lib" CACHE PATH "Path to SDL2 library") + set(SDL2_DLL_DIR "${SDL2_PREFIX}/lib/${SDL2_ARCH_DIR}/" CACHE PATH "Path to SDL2.dll") add_library(SDL2::SDL2 INTERFACE IMPORTED) target_link_libraries(SDL2::SDL2 INTERFACE "${SDL2_LIBRARY}")