mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-17 13:38:18 +00:00
Add arm64 windows support
This commit is contained in:
parent
0ba6d998a4
commit
83c3b4ea89
|
@ -40,7 +40,9 @@ else()
|
|||
set(TARGET_BITS "64")
|
||||
endif()
|
||||
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64")
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm"
|
||||
OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64"
|
||||
OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "ARM64")
|
||||
if(TARGET_BITS STREQUAL "32")
|
||||
set(TARGET_CPU_ARCHITECTURE "arm")
|
||||
else()
|
||||
|
@ -3112,6 +3114,8 @@ set(CPACK_GENERATOR TGZ TXZ)
|
|||
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
||||
if(TARGET_OS STREQUAL "mac")
|
||||
set(CPACK_STRIP_FILES FALSE)
|
||||
elseif(TARGET_OS STREQUAL "windows" AND TARGET_CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
set(CPACK_STRIP_FILES FALSE)
|
||||
else()
|
||||
set(CPACK_STRIP_FILES TRUE)
|
||||
endif()
|
||||
|
@ -3125,7 +3129,11 @@ set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
|||
|
||||
if(TARGET_OS AND TARGET_BITS)
|
||||
if(TARGET_OS STREQUAL "windows")
|
||||
set(CPACK_SYSTEM_NAME "win${TARGET_BITS}")
|
||||
if (TARGET_CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
set(CPACK_SYSTEM_NAME "win-arm64")
|
||||
else()
|
||||
set(CPACK_SYSTEM_NAME "win${TARGET_BITS}")
|
||||
endif()
|
||||
set(CPACK_GENERATOR ZIP)
|
||||
elseif(TARGET_OS STREQUAL "linux")
|
||||
# Let compiler tell its arch
|
||||
|
@ -3386,7 +3394,7 @@ foreach(ext zip tar.gz tar.xz)
|
|||
endforeach()
|
||||
foreach(target ${CPACK_TARGETS})
|
||||
list(APPEND COPY_TARGET_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${target}> ${TMPDIR}/)
|
||||
if(NOT TARGET_OS STREQUAL "mac")
|
||||
if(NOT TARGET_OS STREQUAL "mac" AND NOT (TARGET_OS STREQUAL "windows" AND TARGET_CPU_ARCHITECTURE STREQUAL "arm64"))
|
||||
list(APPEND STRIP_TARGET_COMMANDS COMMAND strip -s ${TMPDIR}/$<TARGET_FILE_NAME:${target}>)
|
||||
endif()
|
||||
endforeach()
|
||||
|
|
|
@ -26,8 +26,11 @@ if(CURL_FOUND)
|
|||
is_bundled(CURL_BUNDLED "${CURL_LIBRARY}")
|
||||
set(CURL_LIBRARIES ${CURL_LIBRARY})
|
||||
set(CURL_INCLUDE_DIRS ${CURL_INCLUDEDIR})
|
||||
|
||||
if(CURL_BUNDLED AND TARGET_OS STREQUAL "windows")
|
||||
if (CURL_BUNDLED AND TARGET_OS STREQUAL "windows" AND TARGET_CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
set(CURL_COPY_FILES
|
||||
"${EXTRA_CURL_LIBDIR}/libcurl-4.dll"
|
||||
)
|
||||
elseif(CURL_BUNDLED AND TARGET_OS STREQUAL "windows")
|
||||
set(CURL_COPY_FILES
|
||||
"${EXTRA_CURL_LIBDIR}/libcurl.dll"
|
||||
"${EXTRA_CURL_LIBDIR}/zlib1.dll"
|
||||
|
|
|
@ -11,11 +11,18 @@ if(TARGET_OS STREQUAL "windows")
|
|||
if(NOT EXCEPTION_HANDLING_BUNDLED)
|
||||
message(FATAL_ERROR "could not find exception handling paths")
|
||||
endif()
|
||||
set(EXCEPTION_HANDLING_COPY_FILES
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/exchndl.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/dbgcore.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/dbghelp.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/mgwhelp.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/symsrv.dll"
|
||||
)
|
||||
if(TARGET_CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
set(EXCEPTION_HANDLING_COPY_FILES
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/exchndl.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/mgwhelp.dll"
|
||||
)
|
||||
else()
|
||||
set(EXCEPTION_HANDLING_COPY_FILES
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/exchndl.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/dbgcore.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/dbghelp.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/mgwhelp.dll"
|
||||
"${EXTRA_EXCEPTION_HANDLING_LIBDIR}/symsrv.dll"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -31,7 +31,9 @@ if(FREETYPE_FOUND)
|
|||
is_bundled(FREETYPE_BUNDLED "${FREETYPE_LIBRARY}")
|
||||
set(FREETYPE_COPY_FILES)
|
||||
if(FREETYPE_BUNDLED)
|
||||
if(TARGET_OS STREQUAL "windows")
|
||||
if(TARGET_OS STREQUAL "windows" AND TARGET_CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
set(FREETYPE_COPY_FILES "${EXTRA_FREETYPE_LIBDIR}/libfreetype-6.dll")
|
||||
elseif(TARGET_OS STREQUAL "windows")
|
||||
set(FREETYPE_COPY_FILES "${EXTRA_FREETYPE_LIBDIR}/libfreetype.dll")
|
||||
elseif(TARGET_OS STREQUAL "mac")
|
||||
set(FREETYPE_COPY_FILES "${EXTRA_FREETYPE_LIBDIR}/libfreetype.6.dylib")
|
||||
|
|
|
@ -29,12 +29,21 @@ set(OPUSFILE_INCLUDE_DIRS ${OPUSFILE_INCLUDEDIR})
|
|||
if(OPUSFILE_FOUND)
|
||||
is_bundled(OPUSFILE_BUNDLED "${OPUSFILE_LIBRARY}")
|
||||
if(OPUSFILE_BUNDLED AND TARGET_OS STREQUAL "windows")
|
||||
set(OPUSFILE_COPY_FILES
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libogg.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libopus.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libopusfile.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libwinpthread-1.dll"
|
||||
)
|
||||
if (TARGET_CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
set(OPUSFILE_COPY_FILES
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libopusfile-0.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libopus-0.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libogg-0.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libwinpthread-1.dll"
|
||||
)
|
||||
else()
|
||||
set(OPUSFILE_COPY_FILES
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libogg.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libopus.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libopusfile.dll"
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libwinpthread-1.dll"
|
||||
)
|
||||
endif()
|
||||
if(TARGET_BITS EQUAL 32)
|
||||
list(APPEND OPUSFILE_COPY_FILES
|
||||
"${EXTRA_OPUSFILE_LIBDIR}/libgcc_s_sjlj-1.dll"
|
||||
|
|
|
@ -40,6 +40,12 @@ if(SQLite3_FOUND)
|
|||
is_bundled(SQLite3_BUNDLED "${SQLite3_LIBRARY}")
|
||||
set(SQLite3_COPY_FILES)
|
||||
if(SQLite3_BUNDLED AND TARGET_OS STREQUAL "windows")
|
||||
set(SQLite3_COPY_FILES "${EXTRA_SQLite3_LIBDIR}/sqlite3.dll")
|
||||
if (TARGET_CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
set(SQLite3_COPY_FILES
|
||||
"${EXTRA_SQLite3_LIBDIR}/libsqlite3-0.dll"
|
||||
)
|
||||
else()
|
||||
set(SQLite3_COPY_FILES "${EXTRA_SQLite3_LIBDIR}/sqlite3.dll")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
if(TARGET_OS STREQUAL "windows")
|
||||
# only find ssp when toolchain is gcc
|
||||
if(TARGET_OS STREQUAL "windows"
|
||||
AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang"
|
||||
AND NOT CMAKE_C_COMPILER_ID STREQUAL "MSVC")
|
||||
set_extra_dirs_lib(SSP ssp)
|
||||
find_file(SSP_LIBRARY
|
||||
NAMES libssp-0.dll
|
||||
|
|
12
cmake/toolchains/mingw64-aarch64-llvm.toolchain
Normal file
12
cmake/toolchains/mingw64-aarch64-llvm.toolchain
Normal file
|
@ -0,0 +1,12 @@
|
|||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
set(CMAKE_C_COMPILER aarch64-w64-mingw32-clang)
|
||||
set(CMAKE_CXX_COMPILER aarch64-w64-mingw32-clang++)
|
||||
set(CMAKE_RC_COMPILER aarch64-w64-mingw32-windres)
|
||||
set(CMAKE_RUST_COMPILER_TARGET aarch64-pc-windows-gnullvm)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
@ -1 +1 @@
|
|||
Subproject commit d5f0cd9194936d1ab5bd19952645b8dffe9ae06c
|
||||
Subproject commit e78f350e7898fc6b0702cdc3b7ce6ee347c97d49
|
|
@ -171,7 +171,7 @@
|
|||
#define CONF_ARCH_ENDIAN_LITTLE 1
|
||||
#endif
|
||||
|
||||
#if defined(__aarch64__) || defined(__arm64__)
|
||||
#if defined(__aarch64__) || defined(__arm64__) || defined(__ARM_ARCH)
|
||||
#define CONF_ARCH_ARM64 1
|
||||
#define CONF_ARCH_STRING "arm64"
|
||||
#define CONF_ARCH_ENDIAN_LITTLE 1
|
||||
|
|
Loading…
Reference in a new issue