From 3ee0afb2a15ccb6862f780ab381b723f6ae2b03b Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Thu, 9 Jan 2025 23:34:33 -0500 Subject: [PATCH] Add support for MSYS2 CLANGARM64 Adds initial Windows ARM64 support --- cmake/modules/DetectMachine.cmake | 16 +++++++++------- cmake/nsis/CMakeLists.txt | 6 +++++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/cmake/modules/DetectMachine.cmake b/cmake/modules/DetectMachine.cmake index b9aa4c8c6e5..8d6b84af40f 100644 --- a/cmake/modules/DetectMachine.cmake +++ b/cmake/modules/DetectMachine.cmake @@ -77,13 +77,15 @@ IF(WIN32) unset(MSVC_VER) else() # Cross-compiled - # TODO: Handle Windows ARM64 targets - IF(WIN64) - SET(IS_X86_64 TRUE) - SET(LMMS_BUILD_WIN64 TRUE) - ELSE(WIN64) - SET(IS_X86 TRUE) - ENDIF(WIN64) + if($ENV{MSYSTEM_CARCH} MATCHES "aarch64") + set(IS_ARM64 TRUE) + set(LMMS_BUILD_WIN64 TRUE) + elseif(WIN64) + set(IS_X86_64 TRUE) + set(LMMS_BUILD_WIN64 TRUE) + else() + set(IS_X86 TRUE) + endif() endif() ELSE() # Detect target architecture based on compiler target triple e.g. "x86_64-pc-linux" diff --git a/cmake/nsis/CMakeLists.txt b/cmake/nsis/CMakeLists.txt index e926e074d76..8363cacf709 100644 --- a/cmake/nsis/CMakeLists.txt +++ b/cmake/nsis/CMakeLists.txt @@ -35,7 +35,11 @@ SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " " PARENT_SCOPE) IF(WIN64) - SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${WIN_PLATFORM}-win64") + if(IS_ARM64) + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${WIN_PLATFORM}-arm64") + else() + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${WIN_PLATFORM}-win64") + endif() SET(CPACK_INSTALL_FIX "$PROGRAMFILES64\\\\${CPACK_PACKAGE_INSTALL_DIRECTORY}\\\\") SET(CPACK_NSIS_DEFINES " ${CPACK_NSIS_DEFINES}