Skip to content

Commit e8a9368

Browse files
committed
Fix MacOSX Git CI for universal build
We needed to add a safety around the simd math libraries
1 parent cb52c57 commit e8a9368

3 files changed

Lines changed: 50 additions & 23 deletions

File tree

Engine/source/CMakeLists.txt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -520,12 +520,23 @@ string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" ARCH)
520520
set(IS_X86 FALSE)
521521
set(IS_ARM FALSE)
522522

523-
if(ARCH MATCHES "x86_64|amd64|i[3-6]86")
524-
set(IS_X86 TRUE)
525-
endif()
526-
527-
if(ARCH MATCHES "arm64|aarch64")
528-
set(IS_ARM TRUE)
523+
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
524+
# Use the CMAKE_OSX_ARCHITECTURES list for universal builds
525+
foreach(arch IN LISTS CMAKE_OSX_ARCHITECTURES)
526+
if(arch STREQUAL "x86_64")
527+
set(IS_X86 TRUE)
528+
elseif(arch STREQUAL "arm64")
529+
set(IS_ARM TRUE)
530+
endif()
531+
endforeach()
532+
else()
533+
# Non-macOS detection
534+
if(ARCH MATCHES "arm64|aarch64")
535+
set(IS_ARM TRUE)
536+
endif()
537+
if(ARCH MATCHES "x86_64|amd64|i[3-6]86")
538+
set(IS_X86 TRUE)
539+
endif()
529540
endif()
530541

531542
# always available

Tools/CMake/torqueMacOSconfigs.cmake

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@ set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
99

1010
# minimum for multi arch build is 11.
1111
set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "" FORCE)
12-
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "" FORCE)
12+
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "Architectures to build" FORCE)
1313
set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET[arch=arm64] "11.0" CACHE STRING "arm 64 minimum deployment target" FORCE)
1414

15-
if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e|x86_64))+")
16-
set(CMAKE_C_SIZEOF_DATA_PTR 8)
17-
set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
18-
if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e))+")
19-
set(CMAKE_SYSTEM_PROCESSOR "aarch64")
20-
else()
21-
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
22-
endif()
23-
else()
24-
set(CMAKE_C_SIZEOF_DATA_PTR 4)
25-
set(CMAKE_CXX_SIZEOF_DATA_PTR 4)
26-
set(CMAKE_SYSTEM_PROCESSOR "arm")
27-
endif()
15+
# if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e|x86_64))+")
16+
# set(CMAKE_C_SIZEOF_DATA_PTR 8)
17+
# set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
18+
# if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e))+")
19+
# set(CMAKE_SYSTEM_PROCESSOR "aarch64")
20+
# else()
21+
# set(CMAKE_SYSTEM_PROCESSOR "x86_64")
22+
# endif()
23+
# else()
24+
# set(CMAKE_C_SIZEOF_DATA_PTR 4)
25+
# set(CMAKE_CXX_SIZEOF_DATA_PTR 4)
26+
# set(CMAKE_SYSTEM_PROCESSOR "arm")
27+
# endif()
2828

2929
# Enable codesigning with secure timestamp when not in Debug configuration (required for Notarization)
3030
set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS[variant=Release] "--timestamp")

Tools/CMake/torque_macros.cmake

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,14 +176,30 @@ function(add_math_backend name compile_defs)
176176
elseif(name STREQUAL "avx2")
177177
target_compile_options(math_${name} PRIVATE -mavx2 -mfma)
178178
elseif(name STREQUAL "neon")
179-
include(CheckCXXCompilerFlag)
180-
check_cxx_compiler_flag("-march=armv8-a" HAS_ARMV8_FLAG)
181-
if(HAS_ARMV8_FLAG)
179+
if(APPLE)
180+
set_target_properties(math_${name} PROPERTIES OSX_ARCHITECTURES "arm64")
181+
else()
182182
target_compile_options(math_${name} PRIVATE -march=armv8-a)
183183
endif()
184184
endif()
185185
endif()
186186

187+
if(APPLE)
188+
# ARM-only backend
189+
if(name STREQUAL "neon")
190+
set_target_properties(math_${name} PROPERTIES
191+
OSX_ARCHITECTURES "arm64"
192+
)
193+
endif()
194+
195+
# x86-only backends
196+
if(name MATCHES "sse2|sse41|avx|avx2")
197+
set_target_properties(math_${name} PROPERTIES
198+
OSX_ARCHITECTURES "x86_64"
199+
)
200+
endif()
201+
endif()
202+
187203
# Inject objects into engine
188204
target_sources(${TORQUE_APP_NAME} PRIVATE $<TARGET_OBJECTS:math_${name}>)
189205
set_target_properties(math_${name} PROPERTIES FOLDER "Libraries/Math")

0 commit comments

Comments
 (0)