| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- 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()
- function(SDL_DetectCPUArchitecture)
- set(archs x86 x64 arm32 arm64 loongarch64)
- set(found FALSE)
- foreach(arch ${archs})
- string(TOUPPER "${arch}" arch_upper)
- set(var_name "SDL_CPU_${arch_upper}")
- if(found)
- set(${var_name} 0 PARENT_SCOPE)
- else()
- check_cpu_architecture(${arch} ${var_name})
- set(found ${${var_name}})
- set(${var_name} ${${var_name}} PARENT_SCOPE)
- set(SDL_CPU_NAME ${arch})
- endif()
- endforeach()
- if(NOT found)
- message(AUTHOR_WARNING "Unknown architecture (failed archs=${archs})")
- set(SDL_CPU_NAME "(unknown)")
- endif()
- endfunction()
|