如果cmake 2.8中的值不相等

时间:2012-07-31 13:34:02

标签: cmake

简短版本:我的构建选项仅适用于一个平台。我正在转换的autotools文件表格会检查if test "$platform_linux" != "yes"格式。我可以在CMakeLists.txt中做同样的事情(测试值是否相等)?

版本略长:我根据找到的建议here对各种平台进行了测试:


IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    # Linux specific code
    SET(OperatingSystem "Linux")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")

我想对IF(${CMAKE_SYSTEM_NAME} NOT MATCHES "Linux")形式进行测试。这似乎不起作用,我能找到的唯一文档是2002年的邮件列表帖子,表明NOTcmake之前对1.2无效。 [Link]。

以后的cmake版本中是否仍然如此,特别是2.6和/或2.8

1 个答案:

答案 0 :(得分:57)

你很亲密! IF的正确语法是

IF(NOT <expression>)

所以在你的具体情况下,你想要

IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux").