transm/config/MSystem.cmake

47 lines
1.4 KiB
CMake
Raw Normal View History

2025-02-16 15:10:53 +08:00
# 获取一些常见的本机系统(注意是本机,非交叉编译器的信息)信息
if (UNIX)
execute_process(
COMMAND uname -a
OUTPUT_VARIABLE UNAME_OUTPUT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(UNAME_OUTPUT MATCHES "x86_64")
set(SYSTEM_ARCH "x86_64")
elseif(UNAME_OUTPUT MATCHES "aarch64")
set(SYSTEM_ARCH "aarch64")
elseif(UNAME_OUTPUT MATCHES "armv7l")
set(SYSTEM_ARCH "armv7l")
elseif(UNAME_OUTPUT MATCHES "i686")
set(SYSTEM_ARCH "i686")
elseif(UNAME_OUTPUT MATCHES "riscv64")
set(SYSTEM_ARCH "riscv64")
else()
set(SYSTEM_ARCH "unknown")
endif()
2025-02-17 18:29:23 +08:00
if(UNAME_OUTPUT MATCHES "alpine" OR UNAME_OUTPUT MATCHES "Alpine")
set(SYSTEM_ARCH "musl_${SYSTEM_ARCH}")
endif()
2025-02-16 15:10:53 +08:00
elseif (WIN32)
# 先调用 ver 命令
execute_process(COMMAND cmd /c ver
2025-02-16 15:10:53 +08:00
OUTPUT_VARIABLE VER_OUTPUT
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(VER_OUTPUT MATCHES "XP")
message(STATUS "Windows XP platform.")
2025-02-16 15:10:53 +08:00
set(SYSTEM_ARCH "x86")
else()
execute_process(COMMAND cmd /c wmic os get osarchitecture
2025-02-16 15:10:53 +08:00
OUTPUT_VARIABLE WMIC_OUTPUT
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(WMIC_OUTPUT MATCHES "64")
set(SYSTEM_ARCH "x86_64")
else()
set(SYSTEM_ARCH "x86")
endif()
endif()
else()
message(FATAL_ERROR "unknow system type.")
endif()
2025-02-17 18:29:23 +08:00
message(STATUS "SYSTEM_ARCH: ${SYSTEM_ARCH}")