mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-18 20:00:56 +00:00
commit
db9dd294b6
3 changed files with 52 additions and 21 deletions
|
|
@ -501,12 +501,23 @@ string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" ARCH)
|
|||
set(IS_X86 FALSE)
|
||||
set(IS_ARM FALSE)
|
||||
|
||||
if(ARCH MATCHES "x86_64|amd64|i[3-6]86")
|
||||
set(IS_X86 TRUE)
|
||||
endif()
|
||||
|
||||
if(ARCH MATCHES "arm64|aarch64")
|
||||
set(IS_ARM TRUE)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
# Use the CMAKE_OSX_ARCHITECTURES list for universal builds
|
||||
foreach(arch IN LISTS CMAKE_OSX_ARCHITECTURES)
|
||||
if(arch STREQUAL "x86_64")
|
||||
set(IS_X86 TRUE)
|
||||
elseif(arch STREQUAL "arm64")
|
||||
set(IS_ARM TRUE)
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
# Non-macOS detection
|
||||
if(ARCH MATCHES "arm64|aarch64")
|
||||
set(IS_ARM TRUE)
|
||||
endif()
|
||||
if(ARCH MATCHES "x86_64|amd64|i[3-6]86")
|
||||
set(IS_X86 TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# always available
|
||||
|
|
|
|||
|
|
@ -9,22 +9,22 @@ set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
|
|||
|
||||
# minimum for multi arch build is 11.
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "" FORCE)
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "" FORCE)
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "Architectures to build" FORCE)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET[arch=arm64] "11.0" CACHE STRING "arm 64 minimum deployment target" FORCE)
|
||||
|
||||
if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e|x86_64))+")
|
||||
set(CMAKE_C_SIZEOF_DATA_PTR 8)
|
||||
set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
|
||||
if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e))+")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "aarch64")
|
||||
else()
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
endif()
|
||||
else()
|
||||
set(CMAKE_C_SIZEOF_DATA_PTR 4)
|
||||
set(CMAKE_CXX_SIZEOF_DATA_PTR 4)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "arm")
|
||||
endif()
|
||||
# if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e|x86_64))+")
|
||||
# set(CMAKE_C_SIZEOF_DATA_PTR 8)
|
||||
# set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
|
||||
# if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e))+")
|
||||
# set(CMAKE_SYSTEM_PROCESSOR "aarch64")
|
||||
# else()
|
||||
# set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
# endif()
|
||||
# else()
|
||||
# set(CMAKE_C_SIZEOF_DATA_PTR 4)
|
||||
# set(CMAKE_CXX_SIZEOF_DATA_PTR 4)
|
||||
# set(CMAKE_SYSTEM_PROCESSOR "arm")
|
||||
# endif()
|
||||
|
||||
# Enable codesigning with secure timestamp when not in Debug configuration (required for Notarization)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS[variant=Release] "--timestamp")
|
||||
|
|
|
|||
|
|
@ -176,7 +176,27 @@ function(add_math_backend name compile_defs)
|
|||
elseif(name STREQUAL "avx2")
|
||||
target_compile_options(math_${name} PRIVATE -mavx2 -mfma)
|
||||
elseif(name STREQUAL "neon")
|
||||
target_compile_options(math_${name} PRIVATE -march=armv8-a)
|
||||
if(APPLE)
|
||||
set_target_properties(math_${name} PROPERTIES OSX_ARCHITECTURES "arm64")
|
||||
else()
|
||||
target_compile_options(math_${name} PRIVATE -march=armv8-a)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
# ARM-only backend
|
||||
if(name STREQUAL "neon")
|
||||
set_target_properties(math_${name} PROPERTIES
|
||||
OSX_ARCHITECTURES "arm64"
|
||||
)
|
||||
endif()
|
||||
|
||||
# x86-only backends
|
||||
if(name MATCHES "sse2|sse41|avx|avx2")
|
||||
set_target_properties(math_${name} PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue