在 CMakeLists.txt 文件中,有没有办法检测可用的 SSE 的最高级别,并将其保存到 CMAKE_CXX_FLAGS?换句话说,我希望能够写出类似的东西:
FindSSE() # defines SSE_FLAGS
set(CMAKE_CXX_FLAGS ${SSE_FLAGS})
例如,如果平台最高支持 SSE 级别 3,则 FindSSE() 会将 SSE_FLAGS 设置为 -msse3。
最佳答案
这可能有点矫枉过正,但 OptimizeForArchitecture.cmake来自 vc on gitorious 将提供基于架构的优化列表。
您可以直接使用该脚本,也可以将其修剪为您需要的代码。
更好的解决方案是制作一个使用 SSE 指令的小型 cmake 测试脚本并检查每个变体是否编译/运行。
编辑:更具体地说,还有 FindSSE.cmake在各个地方,虽然它仍然使用有点笨拙的解析方法/proc/cpuinfo
关于build - 如何检测 CMake 中的 sse 可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6901369/