在CMakeLists.txt文件中,是否可以检测到最高级别的SSE,并将其保存到CMAKE_CXX_FLAGS?换句话说,我希望能够编写如下内容:
FindSSE() # defines SSE_FLAGS
set(CMAKE_CXX_FLAGS ${SSE_FLAGS})
例如,如果平台最多支持SSE 3级,则FindSSE()会将SSE_FLAGS设置为-msse3。
最佳答案
这可能是过大了,但是vc on gitorious上的OptimizeForArchitecture.cmake将提供基于该体系结构的优化列表。
您可以直接使用该脚本,也可以将其裁剪为所需的代码。
更好的解决方案是制作一个使用SSE指令的小型cmake测试脚本,并检查每个变体是否可以编译/运行。
编辑:更具体地说,虽然来源仍然使用笨拙的解析/proc/cpuinfo
的方法,但来自同一来源的FindSSE.cmake