sdlplatform.cmake 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. function(SDL_DetectCMakePlatform)
  2. set(sdl_cmake_platform )
  3. if(WIN32)
  4. set(sdl_cmake_platform Windows)
  5. elseif(PSP)
  6. set(sdl_cmake_platform psp)
  7. elseif(CYGWIN AND NOT MSYS)
  8. set(sdl_cmake_platform Cygwin)
  9. elseif(MSYS)
  10. set(sdl_cmake_platform Msys)
  11. elseif(APPLE)
  12. if(CMAKE_SYSTEM_NAME MATCHES ".*(Darwin|MacOS).*")
  13. set(sdl_cmake_platform macOS)
  14. elseif(CMAKE_SYSTEM_NAME MATCHES ".*tvOS.*")
  15. set(sdl_cmake_platform tvOS)
  16. elseif(CMAKE_SYSTEM_NAME MATCHES ".*iOS.*")
  17. set(sdl_cmake_platform iOS)
  18. elseif(CMAKE_SYSTEM_NAME MATCHES ".*watchOS.*")
  19. set(sdl_cmake_platform watchOS)
  20. elseif (CMAKE_SYSTEM_NAME MATCHES "visionOS")
  21. set(sdl_cmake_platform visionOS)
  22. else()
  23. message(WARNING "Unknown Apple platform: \"${CMAKE_SYSTEM_NAME}\"")
  24. endif()
  25. elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*")
  26. set(sdl_cmake_platform Haiku)
  27. elseif(NINTENDO_3DS)
  28. set(sdl_cmake_platform n3ds)
  29. elseif(CMAKE_SYSTEM_NAME STREQUAL "DOS")
  30. set(sdl_cmake_platform dos)
  31. elseif(NGAGESDK)
  32. set(sdl_cmake_platform ngage)
  33. elseif(PS2)
  34. set(sdl_cmake_platform ps2)
  35. elseif(RISCOS)
  36. set(sdl_cmake_platform RISCOS)
  37. elseif(VITA)
  38. set(sdl_cmake_platform Vita)
  39. elseif(CMAKE_SYSTEM_NAME MATCHES ".*Linux")
  40. set(sdl_cmake_platform Linux)
  41. elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD.*")
  42. set(sdl_cmake_platform FreeBSD)
  43. elseif(CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*")
  44. set(sdl_cmake_platform NetBSD)
  45. elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*")
  46. set(sdl_cmake_platform OpenBSD)
  47. elseif(CMAKE_SYSTEM_NAME STREQUAL "GNU")
  48. # GNU/Hurd must be checked AFTER RISCOS
  49. set(sdl_cmake_platform Hurd)
  50. elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*")
  51. set(sdl_cmake_platform BSDi)
  52. elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly.*|FreeBSD")
  53. set(sdl_cmake_platform FreeBSD)
  54. elseif(CMAKE_SYSTEM_NAME MATCHES "SYSV5.*")
  55. set(sdl_cmake_platform SYSV5)
  56. elseif(CMAKE_SYSTEM_NAME MATCHES "Solaris.*|SunOS.*")
  57. set(sdl_cmake_platform Solaris)
  58. elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX.*")
  59. set(sdl_cmake_platform HPUX)
  60. elseif(CMAKE_SYSTEM_NAME MATCHES "AIX.*")
  61. set(sdl_cmake_platform AIX)
  62. elseif(CMAKE_SYSTEM_NAME MATCHES "Minix.*")
  63. set(sdl_cmake_platform Minix)
  64. elseif(CMAKE_SYSTEM_NAME MATCHES "Android.*")
  65. set(sdl_cmake_platform Android)
  66. elseif(CMAKE_SYSTEM_NAME MATCHES "Emscripten.*")
  67. set(sdl_cmake_platform Emscripten)
  68. elseif(CMAKE_SYSTEM_NAME MATCHES "QNX.*")
  69. set(sdl_cmake_platform QNX)
  70. elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
  71. message(FATAL_ERROR "BeOS support has been removed as of SDL 2.0.2.")
  72. endif()
  73. if(sdl_cmake_platform)
  74. string(TOUPPER "${sdl_cmake_platform}" _upper_platform)
  75. set("${_upper_platform}" TRUE PARENT_SCOPE)
  76. else()
  77. set(sdl_cmake_platform "unknown")
  78. endif()
  79. set(SDL_CMAKE_PLATFORM "${sdl_cmake_platform}" PARENT_SCOPE)
  80. endfunction()