02-cmake語法-if、條件表達


格式:

if(expression)
  # then section.
  COMMAND1(ARGS ...)
  COMMAND2(ARGS ...)
  ...
elseif(expression2)
  # elseif section.
  COMMAND1(ARGS ...)
  COMMAND2(ARGS ...)
  ...
else()
  # else section.
  COMMAND1(ARGS ...)
  COMMAND2(ARGS ...)
  ...
endif()

  

例子:

if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
  message(FATAL_ERROR "
FATAL: In-source builds are not allowed.
       You should create a separate directory for build files.
")
endif()

  

STREQUAL 是 CMAKE 的關鍵字,用於字符串比較,相同返回 true

${CMAKE_SOURCE_DIR} 是 CMAKE 的自保留變量(拿來用就可以,含義已經確定),文件路徑

${CMAKE_BINARY_DIR}是輸出路徑

 

關系操作符

NOT 非,NOT E1
AND 與,E1 AND E2
OR 或,E1 OR E2
EXIST ~ E,存在 name 的文件或者目錄(應該使用絕對路徑),真
COMMAND ~ E,存在 command-name 命令、宏或函數且能夠被調用,真
DEFINED  ~ E,變量被定義了,真
EQUAL E1 ~ E2,變量值或者字符串匹配 regex 正則表達式
LESS
GREATER
STRLESS E1 ~ E2,變量值或者字符串為有效的數字且滿足小於(大於、等於)的條件
STRGREATER 
STREQUAL

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM