mirror of
https://github.com/encounter/aurora.git
synced 2026-07-09 18:19:33 -07:00
Adjust provider arch detection for CMAKE_OSX_ARCHITECTURES
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
include_guard(GLOBAL)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/AuroraTargetPlatform.cmake")
|
||||
|
||||
# Resolve Dawn/WebGPU dependency based on AURORA_DAWN_PROVIDER and AURORA_DAWN_LINKAGE.
|
||||
#
|
||||
@@ -46,24 +47,19 @@ function(_aurora_dawn_set_platform_backends)
|
||||
endif ()
|
||||
endfunction()
|
||||
|
||||
aurora_get_target_arch(_dawn_target_arch)
|
||||
string(TOLOWER "${CMAKE_SYSTEM_NAME}" _dawn_system)
|
||||
string(TOLOWER "${_dawn_target_arch}" _dawn_arch)
|
||||
set(_has_dawn_package FALSE)
|
||||
if ("${_dawn_system}-${_dawn_arch}" MATCHES "^(windows-(amd64|arm64)|linux-(x86_64|aarch64)|darwin-(arm64|x86_64)|ios-arm64|android-aarch64)$")
|
||||
set(_has_dawn_package TRUE)
|
||||
endif ()
|
||||
|
||||
# ── Auto: resolve provider based on platform availability ──
|
||||
set(_aurora_dawn_provider "${AURORA_DAWN_PROVIDER}")
|
||||
if (_aurora_dawn_provider STREQUAL "auto")
|
||||
# Prebuilt Dawn packages available for: windows-{amd64,arm64}, linux-{x86_64,aarch64}, darwin-{arm64,x86_64}, ios-arm64, android-arm64
|
||||
set(_has_package FALSE)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(AMD64|ARM64)$")
|
||||
set(_has_package TRUE)
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|aarch64)$")
|
||||
set(_has_package TRUE)
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64|x86_64)$")
|
||||
set(_has_package TRUE)
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "iOS" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
set(_has_package TRUE)
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
set(_has_package TRUE)
|
||||
endif ()
|
||||
|
||||
if (_has_package)
|
||||
# Prebuilt Dawn packages available for: windows-{amd64,arm64}, linux-{x86_64,aarch64}, darwin-{arm64,x86_64}, ios-arm64, android-aarch64
|
||||
if (_has_dawn_package)
|
||||
set(_aurora_dawn_provider "package")
|
||||
else ()
|
||||
set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL ON)
|
||||
@@ -150,8 +146,12 @@ elseif (_aurora_dawn_provider STREQUAL "system")
|
||||
elseif (_aurora_dawn_provider STREQUAL "package")
|
||||
# ── Package: download prebuilt Dawn install tree ──
|
||||
if (NOT AURORA_DAWN_PACKAGE_URL)
|
||||
string(TOLOWER "${CMAKE_SYSTEM_NAME}" _dawn_system)
|
||||
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" _dawn_arch)
|
||||
if (NOT _has_dawn_package)
|
||||
message(FATAL_ERROR
|
||||
"AURORA_DAWN_PROVIDER=package requires AURORA_DAWN_PACKAGE_URL on this platform.\n"
|
||||
"No prebuilt Dawn package is available for ${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}"
|
||||
" with CMAKE_OSX_ARCHITECTURES='${CMAKE_OSX_ARCHITECTURES}'.")
|
||||
endif ()
|
||||
set(AURORA_DAWN_PACKAGE_URL
|
||||
"https://github.com/encounter/dawn-build/releases/download/${AURORA_DAWN_VERSION}/dawn-${_dawn_system}-${_dawn_arch}.tar.gz")
|
||||
endif ()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
include_guard(GLOBAL)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/AuroraTargetPlatform.cmake")
|
||||
|
||||
# Resolve nod dependency based on AURORA_NOD_PROVIDER.
|
||||
#
|
||||
@@ -13,12 +14,13 @@ include_guard(GLOBAL)
|
||||
set(_aurora_nod_provider "${AURORA_NOD_PROVIDER}")
|
||||
if (_aurora_nod_provider STREQUAL "auto")
|
||||
# Prebuilt nod packages available for: windows-x86_64, linux-x86_64, macos-arm64
|
||||
aurora_get_target_arch(_target_arch)
|
||||
set(_has_package FALSE)
|
||||
if (WIN32 AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(AMD64)$")
|
||||
if (WIN32 AND _target_arch STREQUAL "AMD64")
|
||||
set(_has_package TRUE)
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64)$")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND _target_arch STREQUAL "x86_64")
|
||||
set(_has_package TRUE)
|
||||
elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64)$")
|
||||
elseif (APPLE AND _target_arch STREQUAL "arm64")
|
||||
set(_has_package TRUE)
|
||||
endif ()
|
||||
|
||||
@@ -101,13 +103,16 @@ elseif (_aurora_nod_provider STREQUAL "system")
|
||||
elseif (_aurora_nod_provider STREQUAL "package")
|
||||
# ── Package: download prebuilt nod library ──
|
||||
if (NOT AURORA_NOD_PACKAGE_URL)
|
||||
if (WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
aurora_get_target_arch(_target_arch)
|
||||
set(_nod_platform "")
|
||||
if (WIN32 AND _target_arch STREQUAL "AMD64")
|
||||
set(_nod_platform "windows-x86_64")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64|amd64)$")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND _target_arch STREQUAL "x86_64")
|
||||
set(_nod_platform "linux-x86_64")
|
||||
elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64)$")
|
||||
elseif (APPLE AND _target_arch STREQUAL "arm64")
|
||||
set(_nod_platform "macos-arm64")
|
||||
else ()
|
||||
endif ()
|
||||
if (NOT _nod_platform)
|
||||
message(FATAL_ERROR
|
||||
"AURORA_NOD_PROVIDER=package requires AURORA_NOD_PACKAGE_URL on this platform.\n"
|
||||
"Prebuilt packages: https://github.com/encounter/nod/releases")
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
include_guard(GLOBAL)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/AuroraTargetPlatform.cmake")
|
||||
|
||||
# Resolve SDL3 dependency based on AURORA_SDL3_PROVIDER and AURORA_SDL3_LINKAGE.
|
||||
#
|
||||
@@ -68,8 +69,12 @@ elseif (_aurora_sdl3_provider STREQUAL "package")
|
||||
if (NOT AURORA_SDL3_PACKAGE_URL)
|
||||
if (WIN32)
|
||||
# We have custom builds of SDL3 for Win32 x86/AMD64 with libusb support included
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(AMD64|x86)$")
|
||||
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" _sdl3_arch)
|
||||
aurora_get_target_arch(_target_arch)
|
||||
set(_sdl3_arch "")
|
||||
if (_target_arch MATCHES "^(AMD64|x86)$")
|
||||
string(TOLOWER "${_target_arch}" _sdl3_arch)
|
||||
endif ()
|
||||
if (_sdl3_arch)
|
||||
set(AURORA_SDL3_PACKAGE_URL
|
||||
"https://github.com/encounter/sdl3-build/releases/download/v${AURORA_SDL3_VERSION}/SDL3-windows-${_sdl3_arch}.tar.gz")
|
||||
else ()
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
include_guard(GLOBAL)
|
||||
|
||||
function(aurora_get_target_arch out_var)
|
||||
set(_arch "${CMAKE_SYSTEM_PROCESSOR}")
|
||||
|
||||
if (APPLE AND DEFINED CMAKE_OSX_ARCHITECTURES AND NOT CMAKE_OSX_ARCHITECTURES STREQUAL "")
|
||||
set(_osx_archs ${CMAKE_OSX_ARCHITECTURES})
|
||||
list(REMOVE_DUPLICATES _osx_archs)
|
||||
list(LENGTH _osx_archs _osx_arch_count)
|
||||
if (_osx_arch_count EQUAL 1)
|
||||
list(GET _osx_archs 0 _arch)
|
||||
else ()
|
||||
set(_arch "")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
set(${out_var} "${_arch}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
Reference in New Issue
Block a user