Build 如何在CMake中检测sse可用性

Build 如何在CMake中检测sse可用性,build,cross-platform,cmake,sse,Build,Cross Platform,Cmake,Sse,在CMakeLists.txt文件中,是否有方法检测可用的最高SSE级别,并将其保存到CMAKE_CXX_标志?换言之,我希望能够写出如下内容: FindSSE() # defines SSE_FLAGS set(CMAKE_CXX_FLAGS ${SSE_FLAGS}) 例如,如果平台支持SSE级别3,那么FindSSE()会将SSE_标志设置为-msse3。这可能有些过分,但gitorious上的vc将提供一个基于架构的优化列表 您可以直接使用该脚本,也可以将其精简为所需的代码 更好的解

在CMakeLists.txt文件中,是否有方法检测可用的最高SSE级别,并将其保存到CMAKE_CXX_标志?换言之,我希望能够写出如下内容:

FindSSE()  # defines SSE_FLAGS
set(CMAKE_CXX_FLAGS ${SSE_FLAGS})

例如,如果平台支持SSE级别3,那么FindSSE()会将SSE_标志设置为-msse3。

这可能有些过分,但gitorious上的vc将提供一个基于架构的优化列表

您可以直接使用该脚本,也可以将其精简为所需的代码

更好的解决方案是制作一个使用SSE指令的小型cmake测试脚本,并检查每个变体是否编译/运行


编辑:更具体地说,在不同的地方也有,尽管它仍然使用有点笨拙的解析方法
/proc/cpuinfo

,上面的建议只适用于Linux。Windows.FWIW上有一个巨大的“待办事项”,更新的链接是和。两个
.cmake
链接现在都断开了。