【发布时间】:2022-01-25 05:58:19
【问题描述】:
在 CMake 中,CMAKE_SYSTEM_PROCESSOR 有哪些不同的可能值?至少 AMD、Intel、Apple、Qualcomm 等通用处理器系列的价值?
我在CMake documentation 中找不到此信息。
【问题讨论】:
标签: cmake build processor buildconfiguration
在 CMake 中,CMAKE_SYSTEM_PROCESSOR 有哪些不同的可能值?至少 AMD、Intel、Apple、Qualcomm 等通用处理器系列的价值?
我在CMake documentation 中找不到此信息。
【问题讨论】:
标签: cmake build processor buildconfiguration
根据documentation,“不交叉编译时,此变量与CMAKE_HOST_SYSTEM_PROCESSOR 变量具有相同的值”。在前一种情况下,变量由工具链文件设置,我假设这是您感兴趣的。
在后一种情况下,documentation 表示CMAKE_HOST_SYSTEM_PROCESSOR 是通过以下方式检查环境来确定的:
PROCESSOR_ARCHITECTURE 环境变量的值。
AMD64、IA64、ARM64、EM64T、X86。来源:this SuperUser answer。uname -m 的值。但是,由于这可能会根据您使用的是 x86 还是 ARM CMake 而有所不同,如果已设置,则版本 3.19.2+ 将使用 CMAKE_APPLE_SILICON_PROCESSOR(CMake 或环境变量)的值。它还将Power Macintosh 标准化为powerpc。
x86_64、arm64 和powerpc。arch -s 命令。
uname -m
uname 命令并首先尝试uname -p。如果它返回非零退出状态,它会求助于uname -m
但真正重要的是 CMake 将如何使用CMAKE_SYSTEM_PROCESSOR 的值。以下是我知道的功能:
CPACK_SYSTEM_NAME 的默认值为${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}。Modules/CMake<LANG>Information.cmake 都可选地包括以-${CMAKE_SYSTEM_PROCESSOR}.cmake 为后缀的平台模块
--mcpu(编译)和--cpu(链接)传递给ARMClang【讨论】:
Source: this SuperUser answer. 在源代码中非常清楚:gitlab.kitware.com/cmake/cmake/-/blob/master/Modules/… -> $ENV{PROCESSOR_ARCHITECTURE} 在 Windows 上。
PROCESSOR_ARCHITECTURE的可能值的来源