2014-10-30 177 views
1

有没有一种简单可靠的方法可以在CMake文件中检测到系统CMake正在构建的基于x86指令集(不管比特数)?在CMake文件中检测x86体系结构

+0

我不认为这是重复的。我已经对StackOverflow上的类似问题进行了广泛的检查,并且没有发现实际覆盖这种情况的实例:仅使用CMake检测x86指令集。我相信基于在CMAKE_SYSTEM_PROCESSOR中搜索“x86”的解决方案可行,但我有兴趣听取其他人的意见和经验。 – 2014-10-30 15:40:08

+0

好的,我同意。我会删除该评论。 – sfrehse 2014-10-30 16:06:02

+0

target:https://stackoverflow.com/questions/11944060/how-to-detect-target-architecture-using-cmake – 2017-11-29 17:54:42

回答

2

这里是我的解决方案迄今:

if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)") 
    set (X86 TRUE) 
else() 
    set (X86 FALSE) 
endif() 

请填写正则表达式,如果你知道或找到其CMAKE_SYSTEM_PROCESSOR不包含“86”,“X86”,“AMD64”或“x86系统AMD64“子串。

+1

'CMAKE_SYSTEM_PROCESSOR'对于如此之多的处理器,它返回“未知”,它作为一个通用的解决方案最无用。我很高兴它为你工作。它令人惊讶的是Cmake作为一个构建系统表现得如此糟糕。 – jww 2017-05-11 21:08:25