-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathDetectPlatform.cmake
35 lines (30 loc) · 1.18 KB
/
DetectPlatform.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
set(MR_PLATFORM "UNKNOWN")
IF(MR_EMSCRIPTEN)
set(MR_PLATFORM "WASM")
ELSEIF(APPLE)
set(MR_PLATFORM "APPLE_${CMAKE_SYSTEM_PROCESSOR}")
ELSEIF(WIN32)
set(MR_PLATFORM "Windows")
ELSEIF(EXISTS /etc/os-release)
# TODO: use ID variable
file(STRINGS /etc/os-release distro REGEX "^NAME=")
string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" distro "${distro}")
file(STRINGS /etc/os-release version_id REGEX "^VERSION_ID=")
string(REGEX REPLACE "VERSION_ID=(.*)" "\\1" version_id "${version_id}")
string(REGEX REPLACE "\"(.*)\"" "\\1" version_id "${version_id}")
# TODO: don't strip Ubuntu version (use 24.04 instead of 24)
IF(${distro} STREQUAL "Ubuntu")
string(FIND ${version_id} "." dot-pos)
string(SUBSTRING ${version_id} 0 ${dot-pos} version_id)
ENDIF()
set(MR_PLATFORM "${distro}_${version_id}")
set(MR_LINUX_DISTRO "${distro}")
ENDIF()
add_compile_definitions(MR_PLATFORM="${MR_PLATFORM}")
message("platform: ${MR_PLATFORM}")
# TODO: __aarch64__ ?
IF(NOT APPLE AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
message("CMAKE_SYSTEM_PROCESSOR is ${CMAKE_SYSTEM_PROCESSOR}")
add_compile_definitions(__ARM_CPU__)
message("ARM cpu detected")
ENDIF()