如何为 clang++ 实现相当于下面的 cmake 分支?
if (GXX_VERSION VERSION_GREATER 4.5 OR GXX_VERSION VERSION_EQUAL 4.5)
...
谢谢,
由于某种原因 piokuc 的解决方案对我不起作用,所以我做了以下事情:
EXECUTE_PROCESS( COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE clang_full_version_string )
string (REGEX REPLACE ".*clang version ([0-9]+\\.[0-9]+).*" "\\1" CLANG_VERSION_STRING ${clang_full_version_string})
if (CLANG_VERSION_STRING VERSION_GREATER 3.1)
....
CMake 为 clang 定义了以下内容:
这对我有用:
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3.2)
...
...
endif ()
同样,我们有VERSION_LESS
和VERSION_EQUAL
。
在 cmake v3.1.3 下,我必须检查 CMAKE_CXX_COMPILER_VERSION 因为没有 CLANG_VERSION_STRING 所以看起来现在为每个编译器类型定义了一个版本,提供了更多控制。