+1
-1
.github/workflows/release.yml
+1
-1
.github/workflows/release.yml
···
330
330
-B build_x64 -A x64
331
331
cmake --build build_x64 --config Release --verbose
332
332
ctest --test-dir build_x64 --no-tests=error -C Release --output-on-failure
333
-
- name: 'CMake (configure + build + tests) arm64'
333
+
- name: 'CMake (configure + build) arm64'
334
334
run: |
335
335
$env:PATH += ";${{ steps.bin.outputs.path }}/x86"
336
336
cmake -S "${{ steps.src.outputs.path }}/cmake/test" `
+2
-2
CMakeLists.txt
+2
-2
CMakeLists.txt
···
48
48
include("${SDL3_SOURCE_DIR}/cmake/macros.cmake")
49
49
include("${SDL3_SOURCE_DIR}/cmake/sdlchecks.cmake")
50
50
include("${SDL3_SOURCE_DIR}/cmake/sdlcompilers.cmake")
51
+
include("${SDL3_SOURCE_DIR}/cmake/sdlcpu.cmake")
51
52
include("${SDL3_SOURCE_DIR}/cmake/sdlmanpages.cmake")
52
53
include("${SDL3_SOURCE_DIR}/cmake/sdlplatform.cmake")
53
54
include("${SDL3_SOURCE_DIR}/cmake/sdltargets.cmake")
54
-
include("${SDL3_SOURCE_DIR}/cmake/CheckCPUArchitecture.cmake")
55
55
include("${SDL3_SOURCE_DIR}/cmake/GetGitRevisionDescription.cmake")
56
56
include("${SDL3_SOURCE_DIR}/cmake/3rdparty.cmake")
57
57
include("${SDL3_SOURCE_DIR}/cmake/PreseedMSVCCache.cmake")
58
58
59
59
SDL_DetectCompiler()
60
-
SDL_DetectCPUArchitecture()
60
+
SDL_DetectTargetCPUArchitectures(SDL_CPUS)
61
61
SDL_Preseed_CMakeCache()
62
62
63
63
# Increment this if there is an incompatible change - but if that happens,
+5
-2
VisualC/pkg-support/cmake/sdl3-config-version.cmake
+5
-2
VisualC/pkg-support/cmake/sdl3-config-version.cmake
···
47
47
set(PACKAGE_VERSION_UNSUITABLE TRUE)
48
48
endif()
49
49
50
+
include("${CMAKE_CURRENT_LIST_DIR}/sdlcpu.cmake")
51
+
SDL_DetectTargetCPUArchitectures(_detected_archs)
52
+
50
53
# check that the installed version has a compatible architecture as the one which is currently searching:
51
-
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)"))
52
-
set(PACKAGE_VERSION "${PACKAGE_VERSION} (x86,x64,arm64)")
54
+
if(NOT(SDL_CPU_X86 OR SDL_CPU_X64 OR SDL_CPU_ARM64))
55
+
set(PACKAGE_VERSION "${PACKAGE_VERSION} (X86,X64,ARM64)")
53
56
set(PACKAGE_VERSION_UNSUITABLE TRUE)
54
57
endif()
+18
-28
VisualC/pkg-support/cmake/sdl3-config.cmake
+18
-28
VisualC/pkg-support/cmake/sdl3-config.cmake
···
30
30
31
31
set(SDL3_FOUND TRUE)
32
32
33
-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "([aA][mM][dD]64|[xX]86(_|-64)?|[iI][34567]86)")
34
-
if(CMAKE_SIZEOF_VOID_P EQUAL "4")
35
-
set(_sdl_arch_subdir "x86")
36
-
elseif(CMAKE_SIZEOF_VOID_P EQUAL "8")
37
-
set(_sdl_arch_subdir "x64")
38
-
else()
39
-
set(SDL3_FOUND FALSE)
40
-
return()
41
-
endif()
42
-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "([aA][aA][rR][cC][hH]64|[aA][rR][mM]64)")
43
-
if(CMAKE_SIZEOF_VOID_P EQUAL "8")
44
-
set(_sdl_arch_subdir "arm64")
45
-
else()
46
-
set(SDL3_FOUND FALSE)
47
-
return()
48
-
endif()
33
+
if(SDL_CPU_X86)
34
+
set(_sdl_arch_subdir "x86")
35
+
elseif(SDL_CPU_X64)
36
+
set(_sdl_arch_subdir "x64")
37
+
elseif(SDL_CPU_ARM64)
38
+
set(_sdl_arch_subdir "arm64")
49
39
else()
50
40
set(SDL3_FOUND FALSE)
51
41
return()
···
53
43
54
44
get_filename_component(_sdl3_prefix "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
55
45
set_and_check(_sdl3_prefix "${_sdl3_prefix}")
56
-
set(_sdl3_include_dirs "${_sdl3_prefix}/include;${_sdl3_prefix}/include/SDL3")
46
+
set(_sdl3_include_dirs "${_sdl3_prefix}/include")
57
47
58
-
set(_sdl3_library "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.lib")
59
-
set(_sdl3_dll_library "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.dll")
60
-
set(_sdl3test_library "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3_test.lib")
48
+
set(_sdl3_implib "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.lib")
49
+
set(_sdl3_dll "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3.dll")
50
+
set(_sdl3test_lib "${_sdl3_prefix}/lib/${_sdl_arch_subdir}/SDL3_test.lib")
61
51
62
52
unset(_sdl_arch_subdir)
63
53
unset(_sdl3_prefix)
···
75
65
set(SDL3_Headers_FOUND TRUE)
76
66
unset(_sdl3_include_dirs)
77
67
78
-
if(EXISTS "${_sdl3_library}" AND EXISTS "${_sdl3_dll_library}")
68
+
if(EXISTS "${_sdl3_implib}" AND EXISTS "${_sdl3_dll}")
79
69
if(NOT TARGET SDL3::SDL3-shared)
80
70
add_library(SDL3::SDL3-shared SHARED IMPORTED)
81
71
set_target_properties(SDL3::SDL3-shared
82
72
PROPERTIES
83
73
INTERFACE_LINK_LIBRARIES "SDL3::Headers"
84
-
IMPORTED_IMPLIB "${_sdl3_library}"
85
-
IMPORTED_LOCATION "${_sdl3_dll_library}"
74
+
IMPORTED_IMPLIB "${_sdl3_implib}"
75
+
IMPORTED_LOCATION "${_sdl3_dll}"
86
76
COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED"
87
77
INTERFACE_SDL3_SHARED "ON"
88
78
COMPATIBLE_INTERFACE_STRING "SDL_VERSION"
···
93
83
else()
94
84
set(SDL3_SDL3-shared_FOUND FALSE)
95
85
endif()
96
-
unset(_sdl3_library)
97
-
unset(_sdl3_dll_library)
86
+
unset(_sdl3_implib)
87
+
unset(_sdl3_dll)
98
88
99
89
set(SDL3_SDL3-static_FOUND FALSE)
100
90
101
-
if(EXISTS "${_sdl3test_library}")
91
+
if(EXISTS "${_sdl3test_lib}")
102
92
if(NOT TARGET SDL3::SDL3_test)
103
93
add_library(SDL3::SDL3_test STATIC IMPORTED)
104
94
set_target_properties(SDL3::SDL3_test
105
95
PROPERTIES
106
96
INTERFACE_LINK_LIBRARIES "SDL3::Headers"
107
-
IMPORTED_LOCATION "${_sdl3test_library}"
97
+
IMPORTED_LOCATION "${_sdl3test_lib}"
108
98
COMPATIBLE_INTERFACE_STRING "SDL_VERSION"
109
99
INTERFACE_SDL_VERSION "SDL3"
110
100
)
···
113
103
else()
114
104
set(SDL3_SDL3_test_FOUND FALSE)
115
105
endif()
116
-
unset(_sdl3test_library)
106
+
unset(_sdl3test_lib)
117
107
118
108
if(SDL3_SDL3-shared_FOUND)
119
109
set(SDL3_SDL3_FOUND TRUE)
+1
build-scripts/build-release.py
+1
build-scripts/build-release.py
···
530
530
zip_directory(zf, directory=self.root / "include/SDL3", arcrelpath="include/SDL3")
531
531
zip_directory(zf, directory=self.root / "docs", arcrelpath="docs")
532
532
zip_directory(zf, directory=self.root / "VisualC/pkg-support/cmake", arcrelpath="cmake")
533
+
zip_file(zf, path=self.root / "cmake/sdlcpu.cmake", arcrelpath="cmake/sdlcpu.cmake")
533
534
534
535
for txt in ("BUGS.txt", "README-SDL.txt", "WhatsNew.txt"):
535
536
zip_file(zf, path=self.root / txt, arcrelpath=txt)
-48
cmake/CheckCPUArchitecture.cmake
-48
cmake/CheckCPUArchitecture.cmake
···
1
-
include(CheckCSourceCompiles)
2
-
include(CMakePushCheckState)
3
-
4
-
function(_internal_check_cpu_architecture macro_check NAME VARIABLE)
5
-
cmake_push_check_state()
6
-
string(TOUPPER "${NAME}" UPPER_NAME)
7
-
set(CACHE_VARIABLE "CHECK_CPU_ARCHITECTURE_${UPPER_NAME}")
8
-
set(test_src "
9
-
int main(int argc, char *argv[]) {
10
-
#if ${macro_check}
11
-
return 0;
12
-
#else
13
-
choke
14
-
#endif
15
-
}
16
-
")
17
-
check_c_source_compiles("${test_src}" "${CACHE_VARIABLE}")
18
-
cmake_pop_check_state()
19
-
if(${CACHE_VARIABLE})
20
-
set(${VARIABLE} "TRUE" PARENT_SCOPE)
21
-
else()
22
-
set(${VARIABLE} "FALSE" PARENT_SCOPE)
23
-
endif()
24
-
endfunction()
25
-
26
-
function(check_cpu_architecture ARCH VARIABLE)
27
-
if(ARCH STREQUAL "x86")
28
-
_internal_check_cpu_architecture("defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" x86 ${VARIABLE})
29
-
elseif(ARCH STREQUAL "x64")
30
-
_internal_check_cpu_architecture("defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)" x64 ${VARIABLE})
31
-
elseif(ARCH STREQUAL "arm32")
32
-
_internal_check_cpu_architecture("defined(__arm__) || defined(_M_ARM)" arm32 ${VARIABLE})
33
-
elseif(ARCH STREQUAL "arm64")
34
-
_internal_check_cpu_architecture("defined(__aarch64__) || defined(_M_ARM64)" arm64 ${VARIABLE})
35
-
elseif(ARCH STREQUAL "loongarch64")
36
-
_internal_check_cpu_architecture("defined(__loongarch64)" loongarch64 ${VARIABLE})
37
-
elseif(ARCH STREQUAL "emscripten")
38
-
_internal_check_cpu_architecture("defined(__EMSCRIPTEN__)" emscripten ${VARIABLE})
39
-
elseif(ARCH STREQUAL "powerpc64")
40
-
_internal_check_cpu_architecture("defined(__PPC64__) || defined(__powerpc64__)" powerpc64 ${VARIABLE})
41
-
elseif(ARCH STREQUAL "powerpc32")
42
-
_internal_check_cpu_architecture("(defined(__PPC__) || defined(__powerpc__)) && !defined(__powerpc64__)" powerpc32 ${VARIABLE})
43
-
else()
44
-
message(WARNING "Unknown CPU architectures (${ARCH}).")
45
-
set("${VARIABLE}" FALSE)
46
-
endif()
47
-
set("${VARIABLE}" "${${VARIABLE}}" PARENT_SCOPE)
48
-
endfunction()
+149
cmake/sdlcpu.cmake
+149
cmake/sdlcpu.cmake
···
1
+
function(SDL_DetectTargetCPUArchitectures DETECTED_ARCHS)
2
+
3
+
set(DETECTABLE_ARCHS ARM32 ARM64 EMSCRIPTEN LOONGARCH64 POWERPC32 POWERPC64 X86 X64)
4
+
5
+
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
6
+
foreach(arch IN LISTS DETECTABLE_ARCHS)
7
+
set(SDL_CPU_${arch} "0")
8
+
endforeach()
9
+
set(detected_archs)
10
+
foreach(osx_arch IN LISTS CMAKE_OSX_ARCHITECTURES)
11
+
if(osx_arch STREQUAL "x86_64")
12
+
set(SDL_CPU_X64 "1")
13
+
list(APPEND detected_archs "X64")
14
+
elseif(osx_arch STREQUAL "arm64")
15
+
set(SDL_CPU_ARM64 "1")
16
+
list(APPEND detected_archs "ARM64")
17
+
endif()
18
+
endforeach()
19
+
set("${DETECTED_ARCHS}" "${detected_archs}" PARENT_SCOPE)
20
+
return()
21
+
endif()
22
+
23
+
set(detected_archs)
24
+
foreach(arch IN LISTS DETECTABLE_ARCHS)
25
+
if(SDL_CPU_${arch})
26
+
list(APPEND detected_archs "${arch}")
27
+
endif()
28
+
endforeach()
29
+
30
+
if(detected_archs)
31
+
set("${DETECTED_ARCHS}" "${detected_archs}" PARENT_SCOPE)
32
+
return()
33
+
endif()
34
+
35
+
set(src_arch_detect [=====[
36
+
37
+
#if defined(__arm__) || defined(_M_ARM)
38
+
#define ARCH_ARM32 "1"
39
+
#else
40
+
#define ARCH_ARM32 "0"
41
+
#endif
42
+
const char *arch_arm32 = "INFO<ARM32=" ARCH_ARM32 ">";
43
+
44
+
#if defined(__aarch64__) || defined(_M_ARM64)
45
+
#define ARCH_ARM64 "1"
46
+
#else
47
+
#define ARCH_ARM64 "0"
48
+
#endif
49
+
const char *arch_arm64 = "INFO<ARM64=" ARCH_ARM64 ">";
50
+
51
+
#if defined(__EMSCRIPTEN__)
52
+
#define ARCH_EMSCRIPTEN "1"
53
+
#else
54
+
#define ARCH_EMSCRIPTEN "0"
55
+
#endif
56
+
const char *arch_emscripten = "INFO<EMSCRIPTEN=" ARCH_EMSCRIPTEN ">";
57
+
58
+
#if defined(__loongarch64)
59
+
#define ARCH_LOONGARCH64 "1"
60
+
#else
61
+
#define ARCH_LOONGARCH64 "0"
62
+
#endif
63
+
const char *arch_loongarch64 = "INFO<LOONGARCH64=" ARCH_LOONGARCH64 ">";
64
+
65
+
#if (defined(__PPC__) || defined(__powerpc__)) && !defined(__powerpc64__)
66
+
#define ARCH_POWERPC32 "1"
67
+
#else
68
+
#define ARCH_POWERPC32 "0"
69
+
#endif
70
+
const char *arch_powerpc32 = "INFO<ARCH_POWERPC32=" ARCH_POWERPC32 ">";
71
+
72
+
#if defined(__PPC64__) || defined(__powerpc64__)
73
+
#define ARCH_POWERPC64 "1"
74
+
#else
75
+
#define ARCH_POWERPC64 "0"
76
+
#endif
77
+
const char *arch_powerpc64 = "INFO<POWERPC64=" ARCH_POWERPC64 ">";
78
+
79
+
#if defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)
80
+
#define ARCH_X86 "1"
81
+
#else
82
+
#define ARCH_X86 "0"
83
+
#endif
84
+
const char *arch_x86 = "INFO<X86=" ARCH_X86 ">";
85
+
86
+
#if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)
87
+
#define ARCH_X64 "1"
88
+
#else
89
+
#define ARCH_X64 "0"
90
+
#endif
91
+
const char *arch_x64 = "INFO<X64=" ARCH_X64 ">";
92
+
93
+
int main(int argc, char *argv[]) {
94
+
(void) argv;
95
+
int result = argc;
96
+
result += arch_arm32[argc];
97
+
result += arch_arm64[argc];
98
+
result += arch_emscripten[argc];
99
+
result += arch_loongarch64[argc];
100
+
result += arch_powerpc32[argc];
101
+
result += arch_powerpc64[argc];
102
+
result += arch_x86[argc];
103
+
result += arch_x64[argc];
104
+
return result;
105
+
}
106
+
]=====])
107
+
108
+
set(path_src_arch_detect "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmp/SDL_detect_arch.c")
109
+
file(WRITE "${path_src_arch_detect}" "${src_arch_detect}")
110
+
set(path_dir_arch_detect "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmp/SDL_detect_arch")
111
+
set(path_bin_arch_detect "${path_dir_arch_detect}/bin")
112
+
113
+
set(msg "Detecting Target CPU Architecture")
114
+
message(STATUS "${msg}")
115
+
116
+
try_compile(COMPILED_RES
117
+
"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmp/SDL_detect_arch"
118
+
SOURCES "${path_src_arch_detect}"
119
+
COPY_FILE "${path_bin_arch_detect}"
120
+
)
121
+
if(NOT COMPILED_RES)
122
+
message(STATUS "${msg} - <ERROR>")
123
+
message(WARNING "Failed to compile source detecting the target CPU architecture")
124
+
endif()
125
+
126
+
set(re "INFO<([A-Z0-9]+)=([01])>")
127
+
file(STRINGS "${path_bin_arch_detect}" infos REGEX "${re}")
128
+
129
+
set(detected_archs)
130
+
131
+
foreach(info_arch_01 IN LISTS infos)
132
+
string(REGEX MATCH "${re}" A "${info_arch_01}")
133
+
if(NOT "${CMAKE_MATCH_1}" IN_LIST DETECTABLE_ARCHS)
134
+
message(WARNING "Unknown architecture: \"${CMAKE_MATCH_1}\"")
135
+
continue()
136
+
endif()
137
+
set(arch "${CMAKE_MATCH_1}")
138
+
set(arch_01 "${CMAKE_MATCH_2}")
139
+
if(arch_01)
140
+
list(APPEND detected_archs "${arch}")
141
+
endif()
142
+
set("SDL_CPU_${arch}" "${arch_01}" CACHE BOOL "Detected architecture ${arch}")
143
+
endforeach()
144
+
145
+
message(STATUS "${msg} - ${detected_archs}")
146
+
147
+
set("${DETECTED_ARCHS}" "${detected_archs}" PARENT_SCOPE)
148
+
149
+
endfunction()
+33
-73
cmake/sdlplatform.cmake
+33
-73
cmake/sdlplatform.cmake
···
1
-
macro(SDL_DetectCMakePlatform)
2
-
set(SDL_CMAKE_PLATFORM )
3
-
# Get the platform
1
+
function(SDL_DetectCMakePlatform)
2
+
set(sdl_cmake_platform )
4
3
if(WIN32)
5
-
set(SDL_CMAKE_PLATFORM Windows)
4
+
set(sdl_cmake_platform Windows)
6
5
elseif(PSP)
7
-
set(SDL_CMAKE_PLATFORM psp)
6
+
set(sdl_cmake_platform psp)
8
7
elseif(APPLE)
9
8
if(CMAKE_SYSTEM_NAME MATCHES ".*(Darwin|MacOS).*")
10
-
set(SDL_CMAKE_PLATFORM macOS)
9
+
set(sdl_cmake_platform macOS)
11
10
elseif(CMAKE_SYSTEM_NAME MATCHES ".*tvOS.*")
12
-
set(SDL_CMAKE_PLATFORM tvOS)
11
+
set(sdl_cmake_platform tvOS)
13
12
elseif(CMAKE_SYSTEM_NAME MATCHES ".*iOS.*")
14
-
set(SDL_CMAKE_PLATFORM iOS)
13
+
set(sdl_cmake_platform iOS)
15
14
elseif(CMAKE_SYSTEM_NAME MATCHES ".*watchOS.*")
16
-
set(SDL_CMAKE_PLATFORM watchOS)
15
+
set(sdl_cmake_platform watchOS)
17
16
elseif (CMAKE_SYSTEM_NAME MATCHES "visionOS")
18
-
set(SDL_CMAKE_PLATFORM visionOS)
17
+
set(sdl_cmake_platform visionOS)
19
18
else()
20
19
message(WARNING "Unknown Apple platform: \"${CMAKE_SYSTEM_NAME}\"")
21
20
endif()
22
21
elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*")
23
-
set(SDL_CMAKE_PLATFORM Haiku)
22
+
set(sdl_cmake_platform Haiku)
24
23
elseif(NINTENDO_3DS)
25
-
set(SDL_CMAKE_PLATFORM n3ds)
24
+
set(sdl_cmake_platform n3ds)
26
25
elseif(PS2)
27
-
set(SDL_CMAKE_PLATFORM ps2)
26
+
set(sdl_cmake_platform ps2)
28
27
elseif(VITA)
29
-
set(SDL_CMAKE_PLATFORM Vita)
28
+
set(sdl_cmake_platform Vita)
30
29
elseif(CMAKE_SYSTEM_NAME MATCHES ".*Linux")
31
-
set(SDL_CMAKE_PLATFORM Linux)
30
+
set(sdl_cmake_platform Linux)
32
31
elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD.*")
33
-
set(SDL_CMAKE_PLATFORM FreeBSD)
32
+
set(sdl_cmake_platform FreeBSD)
34
33
elseif(CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*")
35
-
set(SDL_CMAKE_PLATFORM NetBSD)
34
+
set(sdl_cmake_platform NetBSD)
36
35
elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*")
37
-
set(SDL_CMAKE_PLATFORM OpenBSD)
36
+
set(sdl_cmake_platform OpenBSD)
38
37
elseif(CMAKE_SYSTEM_NAME MATCHES ".*GNU.*")
39
-
set(SDL_CMAKE_PLATFORM GNU)
38
+
set(sdl_cmake_platform GNU)
40
39
elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*")
41
-
set(SDL_CMAKE_PLATFORM BSDi)
40
+
set(sdl_cmake_platform BSDi)
42
41
elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly.*|FreeBSD")
43
-
set(SDL_CMAKE_PLATFORM FreeBSD)
42
+
set(sdl_cmake_platform FreeBSD)
44
43
elseif(CMAKE_SYSTEM_NAME MATCHES "SYSV5.*")
45
-
set(SDL_CMAKE_PLATFORM SYSV5)
44
+
set(sdl_cmake_platform SYSV5)
46
45
elseif(CMAKE_SYSTEM_NAME MATCHES "Solaris.*|SunOS.*")
47
-
set(SDL_CMAKE_PLATFORM Solaris)
46
+
set(sdl_cmake_platform Solaris)
48
47
elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX.*")
49
-
set(SDL_CMAKE_PLATFORM HPUX)
48
+
set(sdl_cmake_platform HPUX)
50
49
elseif(CMAKE_SYSTEM_NAME MATCHES "AIX.*")
51
-
set(SDL_CMAKE_PLATFORM AIX)
50
+
set(sdl_cmake_platform AIX)
52
51
elseif(CMAKE_SYSTEM_NAME MATCHES "Minix.*")
53
-
set(SDL_CMAKE_PLATFORM Minix)
52
+
set(sdl_cmake_platform Minix)
54
53
elseif(CMAKE_SYSTEM_NAME MATCHES "Android.*")
55
-
set(SDL_CMAKE_PLATFORM Android)
54
+
set(sdl_cmake_platform Android)
56
55
elseif(CMAKE_SYSTEM_NAME MATCHES "Emscripten.*")
57
-
set(SDL_CMAKE_PLATFORM Emscripten)
56
+
set(sdl_cmake_platform Emscripten)
58
57
elseif(CMAKE_SYSTEM_NAME MATCHES "QNX.*")
59
-
set(SDL_CMAKE_PLATFORM QNX)
58
+
set(sdl_cmake_platform QNX)
60
59
elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
61
60
message(FATAL_ERROR "BeOS support has been removed as of SDL 2.0.2.")
62
61
endif()
63
62
64
-
if(SDL_CMAKE_PLATFORM)
65
-
string(TOUPPER "${SDL_CMAKE_PLATFORM}" _upper_platform)
66
-
set(${_upper_platform} TRUE)
63
+
if(sdl_cmake_platform)
64
+
string(TOUPPER "${sdl_cmake_platform}" _upper_platform)
65
+
set("${_upper_platform}" TRUE PARENT_SCOPE)
67
66
else()
68
-
set(SDL_CMAKE_PLATFORM "unknown")
67
+
set(sdl_cmake_platform "unknown")
69
68
endif()
70
-
endmacro()
71
-
72
-
function(SDL_DetectCPUArchitecture)
73
-
set(sdl_cpu_names)
74
-
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
75
-
foreach(osx_arch ${CMAKE_OSX_ARCHITECTURES})
76
-
if(osx_arch STREQUAL "x86_64")
77
-
list(APPEND sdl_cpu_names "x64")
78
-
elseif(osx_arch STREQUAL "arm64")
79
-
list(APPEND sdl_cpu_names "arm64")
80
-
endif()
81
-
endforeach()
82
-
endif()
83
-
84
-
set(sdl_known_archs x64 x86 arm64 arm32 emscripten powerpc64 powerpc32 loongarch64)
85
-
if(NOT sdl_cpu_names)
86
-
set(found FALSE)
87
-
foreach(sdl_known_arch ${sdl_known_archs})
88
-
if(NOT found)
89
-
string(TOUPPER "${sdl_known_arch}" sdl_known_arch_upper)
90
-
set(var_name "SDL_CPU_${sdl_known_arch_upper}")
91
-
check_cpu_architecture(${sdl_known_arch} ${var_name})
92
-
if(${var_name})
93
-
list(APPEND sdl_cpu_names ${sdl_known_arch})
94
-
set(found TRUE)
95
-
endif()
96
-
endif()
97
-
endforeach()
98
-
endif()
99
-
100
-
foreach(sdl_known_arch ${sdl_known_archs})
101
-
string(TOUPPER "${sdl_known_arch}" sdl_known_arch_upper)
102
-
set(var_name "SDL_CPU_${sdl_known_arch_upper}")
103
-
if(sdl_cpu_names MATCHES "(^|;)${sdl_known_arch}($|;)") # FIXME: use if(IN_LIST)
104
-
set(${var_name} 1 PARENT_SCOPE)
105
-
else()
106
-
set(${var_name} 0 PARENT_SCOPE)
107
-
endif()
108
-
endforeach()
109
-
set(SDL_CPU_NAMES ${sdl_cpu_names} PARENT_SCOPE)
69
+
set(SDL_CMAKE_PLATFORM "${sdl_cmake_platform}" PARENT_SCOPE)
110
70
endfunction()