diff --git a/CMakeLists.txt b/CMakeLists.txt index 144508a2a..dce546274 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -422,7 +422,10 @@ if(SFML_OS_WINDOWS) if(NOT SFML_USE_SYSTEM_DEPS) # install the binaries of SFML dependencies - if(ARCH_32BITS) + if(ARCH_ARM64) + install(DIRECTORY extlibs/bin/ARM64/ DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(DIRECTORY extlibs/libs-msvc-universal/ARM64/ DESTINATION ${CMAKE_INSTALL_LIBDIR}) + elseif(ARCH_X86) install(DIRECTORY extlibs/bin/x86/ DESTINATION ${CMAKE_INSTALL_BINDIR}) if(SFML_COMPILER_MSVC AND SFML_MSVC_VERSION LESS 14) install(DIRECTORY extlibs/libs-msvc/x86/ DESTINATION ${CMAKE_INSTALL_LIBDIR}) @@ -431,7 +434,7 @@ if(SFML_OS_WINDOWS) else() install(DIRECTORY extlibs/libs-mingw/x86/ DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - elseif(ARCH_64BITS) + elseif(ARCH_X64) install(DIRECTORY extlibs/bin/x64/ DESTINATION ${CMAKE_INSTALL_BINDIR}) if(SFML_COMPILER_MSVC AND SFML_MSVC_VERSION LESS 14) install(DIRECTORY extlibs/libs-msvc/x64/ DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/cmake/Config.cmake b/cmake/Config.cmake index c598867d4..56a4631ec 100644 --- a/cmake/Config.cmake +++ b/cmake/Config.cmake @@ -9,10 +9,14 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") include(CheckTypeSize) check_type_size(void* SIZEOF_VOID_PTR) - if(${SIZEOF_VOID_PTR} STREQUAL "4") - set(ARCH_32BITS 1) + if(${CMAKE_GENERATOR_PLATFORM} MATCHES "ARM64") + set(ARCH_ARM64 1) + elseif("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "" AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES "ARM64") + set(ARCH_ARM64 1) + elseif(${SIZEOF_VOID_PTR} STREQUAL "4") + set(ARCH_X86 1) elseif(${SIZEOF_VOID_PTR} STREQUAL "8") - set(ARCH_64BITS 1) + set(ARCH_X64 1) else() message(FATAL_ERROR "Unsupported architecture") return() diff --git a/extlibs/bin/ARM64/openal32.dll b/extlibs/bin/ARM64/openal32.dll new file mode 100644 index 000000000..53152bd8c Binary files /dev/null and b/extlibs/bin/ARM64/openal32.dll differ diff --git a/extlibs/libs-msvc-universal/ARM64/flac.lib b/extlibs/libs-msvc-universal/ARM64/flac.lib new file mode 100644 index 000000000..e8e4c4ded Binary files /dev/null and b/extlibs/libs-msvc-universal/ARM64/flac.lib differ diff --git a/extlibs/libs-msvc-universal/ARM64/freetype.lib b/extlibs/libs-msvc-universal/ARM64/freetype.lib new file mode 100644 index 000000000..a56097437 Binary files /dev/null and b/extlibs/libs-msvc-universal/ARM64/freetype.lib differ diff --git a/extlibs/libs-msvc-universal/ARM64/ogg.lib b/extlibs/libs-msvc-universal/ARM64/ogg.lib new file mode 100644 index 000000000..6bfefb350 Binary files /dev/null and b/extlibs/libs-msvc-universal/ARM64/ogg.lib differ diff --git a/extlibs/libs-msvc-universal/ARM64/openal32.lib b/extlibs/libs-msvc-universal/ARM64/openal32.lib new file mode 100644 index 000000000..dc7cb0f49 Binary files /dev/null and b/extlibs/libs-msvc-universal/ARM64/openal32.lib differ diff --git a/extlibs/libs-msvc-universal/ARM64/vorbis.lib b/extlibs/libs-msvc-universal/ARM64/vorbis.lib new file mode 100644 index 000000000..d59f33b9a Binary files /dev/null and b/extlibs/libs-msvc-universal/ARM64/vorbis.lib differ diff --git a/extlibs/libs-msvc-universal/ARM64/vorbisenc.lib b/extlibs/libs-msvc-universal/ARM64/vorbisenc.lib new file mode 100644 index 000000000..a700b1de6 Binary files /dev/null and b/extlibs/libs-msvc-universal/ARM64/vorbisenc.lib differ diff --git a/extlibs/libs-msvc-universal/ARM64/vorbisfile.lib b/extlibs/libs-msvc-universal/ARM64/vorbisfile.lib new file mode 100644 index 000000000..dba0d3255 Binary files /dev/null and b/extlibs/libs-msvc-universal/ARM64/vorbisfile.lib differ diff --git a/src/SFML/CMakeLists.txt b/src/SFML/CMakeLists.txt index 0081ad5c2..656072731 100644 --- a/src/SFML/CMakeLists.txt +++ b/src/SFML/CMakeLists.txt @@ -6,14 +6,14 @@ include(${PROJECT_SOURCE_DIR}/cmake/Macros.cmake) if (SFML_OS_WINDOWS) set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${PROJECT_SOURCE_DIR}/extlibs/headers") if(SFML_COMPILER_GCC OR (SFML_COMPILER_CLANG AND MINGW)) - if(ARCH_32BITS) + if(ARCH_X86) if(SFML_RUNTIME_UCRT) # taking precendence for provided libraries linking UCRT list(APPEND CMAKE_LIBRARY_PATH "${PROJECT_SOURCE_DIR}/extlibs/libs-mingw-ucrt/x86") endif() set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${PROJECT_SOURCE_DIR}/extlibs/libs-mingw/x86") set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${PROJECT_SOURCE_DIR}/extlibs/bin/x86") - elseif(ARCH_64BITS) + elseif(ARCH_X64) if(SFML_RUNTIME_UCRT) # taking precendence for provided libraries linking UCRT list(APPEND CMAKE_LIBRARY_PATH "${PROJECT_SOURCE_DIR}/extlibs/libs-mingw-ucrt/x64") @@ -23,15 +23,17 @@ if (SFML_OS_WINDOWS) endif() elseif(SFML_COMPILER_MSVC OR (SFML_COMPILER_CLANG AND NOT MINGW)) if(SFML_MSVC_VERSION LESS 14) - if(ARCH_32BITS) + if(ARCH_X86) set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${PROJECT_SOURCE_DIR}/extlibs/libs-msvc/x86") - elseif(ARCH_64BITS) + elseif(ARCH_X64) set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${PROJECT_SOURCE_DIR}/extlibs/libs-msvc/x64") endif() else() - if(ARCH_32BITS) + if(ARCH_ARM64) + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${PROJECT_SOURCE_DIR}/extlibs/libs-msvc-universal/ARM64") + elseif(ARCH_X86) set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${PROJECT_SOURCE_DIR}/extlibs/libs-msvc-universal/x86") - elseif(ARCH_64BITS) + elseif(ARCH_X64) set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${PROJECT_SOURCE_DIR}/extlibs/libs-msvc-universal/x64") endif() endif()