什么是启用相当于GCC的CMake方式-march=,特别是-march=native?真的没有比这更好的了CHECK_CXX_COMPILER_FLAG,例如:
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
if(COMPILER_SUPPORTS_MARCH_NATIVE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
Run Code Online (Sandbox Code Playgroud)
是的,此功能测试是将参数应用于 的适当方法CMAKE_CXX_FLAGS。
也许改进可能是将其隐藏在 后面option,正如 @LeviMorrison 所建议的那样。
option(OPTIMIZE_FOR_NATIVE "Build with -march=native" OFF)
Run Code Online (Sandbox Code Playgroud)