mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-04-04 22:59:49 +00:00
cmake: detect CPU architecture in 1 compilation
This commit is contained in:
@@ -47,8 +47,11 @@ if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "")
|
||||
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||
endif()
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/sdlcpu.cmake")
|
||||
SDL_DetectTargetCPUArchitectures(_detected_archs)
|
||||
|
||||
# check that the installed version has a compatible architecture as the one which is currently searching:
|
||||
if(NOT (CMAKE_SYSTEM_PROCESSOR MATCHES "([aA][mM][dD]64|[xX]86((_|-)64)?|[iI][34567]86|[aA][aA][rR][cC][hH]64|[aA][rR][mM]64)"))
|
||||
set(PACKAGE_VERSION "${PACKAGE_VERSION} (x86,x64,arm64)")
|
||||
if(NOT(SDL_CPU_X86 OR SDL_CPU_X64 OR SDL_CPU_ARM64))
|
||||
set(PACKAGE_VERSION "${PACKAGE_VERSION} (X86,X64,ARM64)")
|
||||
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||
endif()
|
||||
|
||||
@@ -30,22 +30,12 @@ endmacro()
|
||||
|
||||
set(SDL3_FOUND TRUE)
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "([aA][mM][dD]64|[xX]86(_|-64)?|[iI][34567]86)")
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL "4")
|
||||
set(_sdl_arch_subdir "x86")
|
||||
elseif(CMAKE_SIZEOF_VOID_P EQUAL "8")
|
||||
set(_sdl_arch_subdir "x64")
|
||||
else()
|
||||
set(SDL3_FOUND FALSE)
|
||||
return()
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "([aA][aA][rR][cC][hH]64|[aA][rR][mM]64)")
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL "8")
|
||||
set(_sdl_arch_subdir "arm64")
|
||||
else()
|
||||
set(SDL3_FOUND FALSE)
|
||||
return()
|
||||
endif()
|
||||
if(SDL_CPU_X86)
|
||||
set(_sdl_arch_subdir "x86")
|
||||
elseif(SDL_CPU_X64)
|
||||
set(_sdl_arch_subdir "x64")
|
||||
elseif(SDL_CPU_ARM64)
|
||||
set(_sdl_arch_subdir "arm64")
|
||||
else()
|
||||
set(SDL3_FOUND FALSE)
|
||||
return()
|
||||
@@ -53,11 +43,11 @@ endif()
|
||||
|
||||
get_filename_component(_sdl3_prefix "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
|
||||
set_and_check(_sdl3_prefix "${_sdl3_prefix}")
|
||||
set(_sdl3_include_dirs "${_sdl3_prefix}/include;${_sdl3_prefix}/include/SDL3")
|
||||
set(_sdl3_include_dirs "${_sdl3_prefix}/include")
|
||||
|
||||
set(_sdl3_library "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.lib")
|
||||
set(_sdl3_dll_library "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.dll")
|
||||
set(_sdl3test_library "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3_test.lib")
|
||||
set(_sdl3_implib "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.lib")
|
||||
set(_sdl3_dll "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.dll")
|
||||
set(_sdl3test_lib "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3_test.lib")
|
||||
|
||||
unset(_sdl_arch_subdir)
|
||||
unset(_sdl3_prefix)
|
||||
@@ -75,14 +65,14 @@ endif()
|
||||
set(SDL3_Headers_FOUND TRUE)
|
||||
unset(_sdl3_include_dirs)
|
||||
|
||||
if(EXISTS "${_sdl3_library}" AND EXISTS "${_sdl3_dll_library}")
|
||||
if(EXISTS "${_sdl3_implib}" AND EXISTS "${_sdl3_dll}")
|
||||
if(NOT TARGET SDL3::SDL3-shared)
|
||||
add_library(SDL3::SDL3-shared SHARED IMPORTED)
|
||||
set_target_properties(SDL3::SDL3-shared
|
||||
PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "SDL3::Headers"
|
||||
IMPORTED_IMPLIB "${_sdl3_library}"
|
||||
IMPORTED_LOCATION "${_sdl3_dll_library}"
|
||||
IMPORTED_IMPLIB "${_sdl3_implib}"
|
||||
IMPORTED_LOCATION "${_sdl3_dll}"
|
||||
COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED"
|
||||
INTERFACE_SDL3_SHARED "ON"
|
||||
COMPATIBLE_INTERFACE_STRING "SDL_VERSION"
|
||||
@@ -93,18 +83,18 @@ if(EXISTS "${_sdl3_library}" AND EXISTS "${_sdl3_dll_library}")
|
||||
else()
|
||||
set(SDL3_SDL3-shared_FOUND FALSE)
|
||||
endif()
|
||||
unset(_sdl3_library)
|
||||
unset(_sdl3_dll_library)
|
||||
unset(_sdl3_implib)
|
||||
unset(_sdl3_dll)
|
||||
|
||||
set(SDL3_SDL3-static_FOUND FALSE)
|
||||
|
||||
if(EXISTS "${_sdl3test_library}")
|
||||
if(EXISTS "${_sdl3test_lib}")
|
||||
if(NOT TARGET SDL3::SDL3_test)
|
||||
add_library(SDL3::SDL3_test STATIC IMPORTED)
|
||||
set_target_properties(SDL3::SDL3_test
|
||||
PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "SDL3::Headers"
|
||||
IMPORTED_LOCATION "${_sdl3test_library}"
|
||||
IMPORTED_LOCATION "${_sdl3test_lib}"
|
||||
COMPATIBLE_INTERFACE_STRING "SDL_VERSION"
|
||||
INTERFACE_SDL_VERSION "SDL3"
|
||||
)
|
||||
@@ -113,7 +103,7 @@ if(EXISTS "${_sdl3test_library}")
|
||||
else()
|
||||
set(SDL3_SDL3_test_FOUND FALSE)
|
||||
endif()
|
||||
unset(_sdl3test_library)
|
||||
unset(_sdl3test_lib)
|
||||
|
||||
if(SDL3_SDL3-shared_FOUND)
|
||||
set(SDL3_SDL3_FOUND TRUE)
|
||||
|
||||
Reference in New Issue
Block a user