我知道在CMake中我可以检查这样的编译器版本
if(MSVC_VERSION LESS 1700)
... // MSVC is lower than MSVC2012
Run Code Online (Sandbox Code Playgroud)
但是我如何用CMake语法表达这个呢?
if(MSVC_VERSION GREATER_OR_EQUAL_TO 1700)
... // MSVC greater or equal to MSVC2012
Run Code Online (Sandbox Code Playgroud)
Com*_*sMS 44
CMake 3.7及更高版本的更新:
CMake的3.7 引入了几个新的比较对if
,其中GREATER_EQUAL
:
if(MSVC_VERSION GREATER_EQUAL 1700)
[...]
Run Code Online (Sandbox Code Playgroud)
较旧的CMake版本的原始答案:
if((MSVC_VERSION GREATER 1700) OR (MSVC_VERSION EQUAL 1700))
[...]
Run Code Online (Sandbox Code Playgroud)
或者可能更好,因为它避免重复这个条件:
if(NOT (MSVC_VERSION LESS 1700))
[...]
Run Code Online (Sandbox Code Playgroud)
也许使用VERSION_GREATER_EQUAL
?(这也在 CMake 3.7 中引入。)
IE:
if (MSVC_VERSION VERSION_GREATER_EQUAL 1700)
# [...]
Run Code Online (Sandbox Code Playgroud)
VERSION_GREATER_EQUAL 和 VERSION_LESS_EQUAL 还支持多部分版本标识符,例如 14.1.0,也可以正确比较它们。
归档时间: |
|
查看次数: |
12994 次 |
最近记录: |