forked from kuncarous/nextmu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSetPlatform.cmake
53 lines (50 loc) · 1.86 KB
/
SetPlatform.cmake
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
set(PLATFORM_WIN32 FALSE)
set(PLATFORM_UNIVERSAL_WINDOWS FALSE)
set(PLATFORM_ANDROID FALSE)
set(PLATFORM_LINUX FALSE)
set(PLATFORM_MACOS FALSE)
set(PLATFORM_IOS FALSE)
set(PLATFORM_TVOS FALSE)
set(PLATFORM_EMSCRIPTEN FALSE)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(ARCH 64 CACHE INTERNAL "64-bit architecture")
else()
set(ARCH 32 CACHE INTERNAL "32-bit architecture")
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Android")
set(PLATFORM_ANDROID TRUE)
message("Target platform: Android " ${ARCH})
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(PLATFORM_LINUX TRUE)
message("Target platform: Linux " ${ARCH})
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
if(IOS)
set(PLATFORM_IOS TRUE)
message("Target platform: iOS " ${ARCH})
else()
set(PLATFORM_MACOS TRUE)
message("Target platform: MacOS " ${ARCH})
endif()
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "iOS")
set(PLATFORM_IOS TRUE)
message("Target platform: iOS " ${ARCH})
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "tvOS")
set(PLATFORM_TVOS TRUE)
message("Target platform: tvOS " ${ARCH})
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten")
set(PLATFORM_EMSCRIPTEN TRUE)
message("Target platform: Emscripten " ${ARCH})
elseif(WIN32)
if(${CMAKE_SYSTEM_NAME} STREQUAL "WindowsStore")
set(PLATFORM_UNIVERSAL_WINDOWS TRUE)
message("Target platform: Universal Windows " ${ARCH} ". SDK Version: " ${CMAKE_SYSTEM_VERSION})
else()
set(PLATFORM_WIN32 TRUE) #WIN32 is a variable, so we cannot use string "WIN32"
message("Target platform: Win32 " ${ARCH} ". SDK Version: " ${CMAKE_SYSTEM_VERSION})
endif()
else()
message(FATAL_ERROR "Unsupported platform")
endif()
if(PLATFORM_MACOS OR PLATFORM_IOS OR PLATFORM_TVOS)
set(PLATFORM_APPLE TRUE)
endif()