我知道在 CMake 中我可以像这样检查编译器版本
if(MSVC_VERSION LESS 1700)
... // MSVC is lower than MSVC2012
但是我如何用 CMake 语法表达这一点?
if(MSVC_VERSION GREATER_OR_EQUAL_TO 1700)
... // MSVC greater or equal to MSVC2012
CMake 3.7 及更高版本更新:
CMake 3.7 为 if
引入了一些新的比较,其中
GREATER_EQUAL
:
if(MSVC_VERSION GREATER_EQUAL 1700)
[...]
旧版 CMake 的原始答案:
if((MSVC_VERSION GREATER 1700) OR (MSVC_VERSION EQUAL 1700))
[...]
或者可能更好,因为它避免重复这种情况:
if(NOT (MSVC_VERSION LESS 1700))
[...]
VERSION_GREATER_EQUAL
? (CMake 3.7 中也引入了这一点。)
即:
if (MSVC_VERSION VERSION_GREATER_EQUAL 1700)
# [...]
VERSION_GREATER_EQUAL 和 VERSION_LESS_EQUAL 还支持多部分版本标识符,例如 14.1.0,也可以正确比较它们。
在 3.7 中引入了 GREATER_EQUAL 和 LESS_EQUAL。