如果cmake 2.8中的值不相等

sim*_*ont 36 cmake

简短版本:我有构建选项只能在一个平台上工作.autotools我正在转换表单的文件检查表单if test "$platform_linux" != "yes".我可以在我做同样的事情CMakeLists.txt(测试值是否相等)?

稍微长一点的版本:我按照这里的建议对各种平台进行了测试:


IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    # Linux specific code
    SET(OperatingSystem "Linux")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
Run Code Online (Sandbox Code Playgroud)

我想对表格进行测试IF(${CMAKE_SYSTEM_NAME} NOT MATCHES "Linux").这似乎不起作用,我可以找到的唯一文档是2002年的邮件列表帖子,这表明它在之前NOT无效.[ 链接 ].cmake1.2

在以后的cmake版本中是否仍然如此,具体2.6和/或2.8

Fra*_*ser 62

你很亲密!正确的语法IF

IF(NOT <expression>)
Run Code Online (Sandbox Code Playgroud)

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

IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux"). 
Run Code Online (Sandbox Code Playgroud)