mirror of
https://github.com/libsdl-org/SDL.git
synced 2024-11-27 05:43:29 +08:00
71 lines
2.5 KiB
CMake
71 lines
2.5 KiB
CMake
function(SDL_DetectCMakePlatform)
|
|
set(sdl_cmake_platform )
|
|
if(WIN32)
|
|
set(sdl_cmake_platform Windows)
|
|
elseif(PSP)
|
|
set(sdl_cmake_platform psp)
|
|
elseif(APPLE)
|
|
if(CMAKE_SYSTEM_NAME MATCHES ".*(Darwin|MacOS).*")
|
|
set(sdl_cmake_platform macOS)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES ".*tvOS.*")
|
|
set(sdl_cmake_platform tvOS)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES ".*iOS.*")
|
|
set(sdl_cmake_platform iOS)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES ".*watchOS.*")
|
|
set(sdl_cmake_platform watchOS)
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "visionOS")
|
|
set(sdl_cmake_platform visionOS)
|
|
else()
|
|
message(WARNING "Unknown Apple platform: \"${CMAKE_SYSTEM_NAME}\"")
|
|
endif()
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*")
|
|
set(sdl_cmake_platform Haiku)
|
|
elseif(NINTENDO_3DS)
|
|
set(sdl_cmake_platform n3ds)
|
|
elseif(PS2)
|
|
set(sdl_cmake_platform ps2)
|
|
elseif(VITA)
|
|
set(sdl_cmake_platform Vita)
|
|
elseif(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 "Android.*")
|
|
set(sdl_cmake_platform Android)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Emscripten.*")
|
|
set(sdl_cmake_platform Emscripten)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES "QNX.*")
|
|
set(sdl_cmake_platform QNX)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
|
|
message(FATAL_ERROR "BeOS support has been removed as of SDL 2.0.2.")
|
|
endif()
|
|
|
|
if(sdl_cmake_platform)
|
|
string(TOUPPER "${sdl_cmake_platform}" _upper_platform)
|
|
set("${_upper_platform}" TRUE PARENT_SCOPE)
|
|
else()
|
|
set(sdl_cmake_platform "unknown")
|
|
endif()
|
|
set(SDL_CMAKE_PLATFORM "${sdl_cmake_platform}" PARENT_SCOPE)
|
|
endfunction()
|