cmake: detect cpu architecture in SDL_DetectCPUArchitecture

Stop looking for arch, when one is found
This commit is contained in:
Anonymous Maarten 2023-01-09 15:06:45 +01:00 committed by Anonymous Maarten
parent 9cf34908a1
commit 19d162281c
2 changed files with 22 additions and 5 deletions

View file

@ -104,11 +104,7 @@ set(SDL_DYLIB_COMPAT_VERSION "${SDL_DYLIB_COMPAT_VERSION_MAJOR}.${SDL_DYLIB_COMP
#message("SDL_SO_VERSION=${SDL_SO_VERSION} SDL_DYLIB_CURRENT_VERSION=${SDL_DYLIB_CURRENT_VERSION} SDL_DYLIB_COMPAT_VERSION=${SDL_DYLIB_COMPAT_VERSION}")
check_cpu_architecture(x86 SDL_CPU_X86)
check_cpu_architecture(x64 SDL_CPU_X64)
check_cpu_architecture(arm32 SDL_CPU_ARM32)
check_cpu_architecture(arm64 SDL_CPU_ARM64)
check_cpu_architecture(loongarch64 SDL_CPU_LOONGARCH64)
SDL_DetectCPUArchitecture()
# Check for 64 or 32 bit
if(CMAKE_SIZEOF_VOID_P EQUAL 8)

View file

@ -53,3 +53,24 @@ macro(SDL_DetectCMakePlatform)
set(${SDL_CMAKE_PLATFORM} TRUE)
endif()
endmacro()
function(SDL_DetectCPUArchitecture)
set(archs x86 x64 arm32 arm64 loongarch64)
set(found FALSE)
foreach(arch ${archs})
string(TOUPPER "${arch}" arch_upper)
set(var_name "SDL_CPU_${arch_upper}")
if(found)
set(${var_name} 0 PARENT_SCOPE)
else()
check_cpu_architecture(${arch} ${var_name})
set(found ${${var_name}})
set(${var_name} ${${var_name}} PARENT_SCOPE)
set(SDL_CPU_NAME ${arch})
endif()
endforeach()
if(NOT found)
message(AUTHOR_WARNING "Unknown architecture (failed archs=${archs})")
set(SDL_CPU_NAME "(unknown)")
endif()
endfunction()