summaryrefslogtreecommitdiff
path: root/src/contrib/SDL-3.2.20/cmake/sdlplatform.cmake
blob: 677b187073ad2a3b8fa810d8253db29ccdc62f8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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()