From d0d7c58be7bc854a1dfd3f6c3baa58e43553d13a Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 29 Nov 2022 17:04:46 +0100
Subject: [PATCH] cmake: add SDL_DetectCMakePlatform macro
---
CMakeLists.txt | 2 ++
cmake/sdlplatform.cmake | 55 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 57 insertions(+)
create mode 100644 cmake/sdlplatform.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 04f2ba7..9ba35e4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,7 +24,9 @@ include(CheckCCompilerFlag)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlchecks.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlplatform.cmake")
+SDL_DetectCMakePlatform()
CheckOpenGLES()
set(CMAKE_SKIP_RPATH TRUE)
diff --git a/cmake/sdlplatform.cmake b/cmake/sdlplatform.cmake
new file mode 100644
index 0000000..f55ad31
--- /dev/null
+++ b/cmake/sdlplatform.cmake
@@ -0,0 +1,55 @@
+macro(SDL_DetectCMakePlatform)
+ set(SDL_CMAKE_PLATFORM )
+ # Get the platform
+ if(WIN32)
+ set(SDL_CMAKE_PLATFORM WINDOWS)
+ elseif(UNIX AND NOT APPLE)
+ if(CMAKE_SYSTEM_NAME MATCHES ".*Linux")
+ set(SDL_CMAKE_PLATFORM LINUX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD.*")
+ set(SDL_CMAKE_PLATFORM FREEBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*")
+ set(SDL_CMAKE_PLATFORM NETBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*")
+ set(SDL_CMAKE_PLATFORM OPENBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*GNU.*")
+ set(SDL_CMAKE_PLATFORM GNU)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*")
+ set(SDL_CMAKE_PLATFORM BSDI)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly.*|FreeBSD")
+ set(SDL_CMAKE_PLATFORM FREEBSD)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "SYSV5.*")
+ set(SDL_CMAKE_PLATFORM SYSV5)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Solaris.*|SunOS.*")
+ set(SDL_CMAKE_PLATFORM SOLARIS)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX.*")
+ set(SDL_CMAKE_PLATFORM HPUX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "AIX.*")
+ set(SDL_CMAKE_PLATFORM AIX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Minix.*")
+ set(SDL_CMAKE_PLATFORM MINIX)
+ endif()
+ elseif(APPLE)
+ if(CMAKE_SYSTEM_NAME MATCHES ".*Darwin.*")
+ set(SDL_CMAKE_PLATFORM DARWIN)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*MacOS.*")
+ set(SDL_CMAKE_PLATFORM MACOSX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*tvOS.*")
+ set(SDL_CMAKE_PLATFORM TVOS)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*iOS.*")
+ # !!! FIXME: remove the version check when we start requiring >= 3.14.0
+ if(CMAKE_VERSION VERSION_LESS 3.14)
+ set(SDL_CMAKE_PLATFORM IOS)
+ endif()
+ endif()
+ elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
+ message_error("BeOS support has been removed as of SDL 2.0.2.")
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*")
+ set(SDL_CMAKE_PLATFORM HAIKU)
+ elseif(NINTENDO_3DS)
+ set(SDL_CMAKE_PLATFORM N3DS)
+ endif()
+ if(SDL_CMAKE_PLATFORM)
+ set(${SDL_CMAKE_PLATFORM} TRUE)
+ endif()
+endmacro()