diff --git a/cmake/modules/DetectMachine.cmake b/cmake/modules/DetectMachine.cmake index b9aa4c8c6..8d6b84af4 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 e926e074d..8363cacf7 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}