48

短版:我有只能在一个平台上运行的构建选项。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")

我想做一个表格测试IF(${CMAKE_SYSTEM_NAME} NOT MATCHES "Linux")。这似乎不起作用,我能找到的唯一文档是 2002 年的邮件列表帖子,NOTcmake表明1.2. [链接]。

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

4

1 回答 1

85

你很近!的正确语法IF

IF(NOT <expression>)

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

IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux"). 
于 2012-07-31T19:36:29.653 回答