build - 如何检测 CMake 中的 sse 可用性

标签 build cross-platform cmake sse

在 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/

相关文章:

java - 使用 Maven 构建类路径失败

jquery - Javascript 键码 =/= 字符码

java - JTextField 在 Mac 上显示,但在 Windows 上不显示

c++ - 使用 Qt 时删除 CMake 3.14.0 中的 CMP0020 错误

c++ - 使用 CMake 在 Visual Studio 中将包含目录显示为项目的单独部分

java - Maven 与 Nexus : Creating a zip from the installed artifacts

c# - ASP.NET MVC 项目构建在 travis-ci 上开始失败

php - 删除网站的所有缓存页面

python - CentOS上用python模块安装OpenCV出错

xcode - 如何在 Xcode 分析和存档构建中设置 DEBUG 和 NDEBUG 宏?