如果cmake 2.8中的值不相等

0md85ypi  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(219)

**简短版本:**我的构建选项只能在一个平台上工作。我正在转换的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年的一个邮件列表帖子,它表明NOT对于1.2之前的cmake是无效的。[Link]
在以后的cmake版本中,特别是2.6和/或2.8中,情况是否仍然如此?

mrphzbgm

mrphzbgm1#

IF的正确语法是

IF(NOT <expression>)

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

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

相关问题