60 lines
2.1 KiB
CMake
60 lines
2.1 KiB
CMake
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)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES "QNX")
|
|
set(SDL_CMAKE_PLATFORM QNX)
|
|
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)
|
|
elseif(OS2)
|
|
set(SDL_CMAKE_PLATFORM OS2)
|
|
endif()
|
|
if(SDL_CMAKE_PLATFORM)
|
|
set(${SDL_CMAKE_PLATFORM} TRUE)
|
|
endif()
|
|
endmacro()
|