格式:

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

最新文章

  1. elk查询语法
  2. AutoMapper搬运工之自定义类型转换
  3. BADI_MATERIAL_CHECK(物料主数据表的增强检查)
  4. 图表插件使用汇总(echarts,highchairts)
  5. SpringBoot之springfox(Swagger) (ApiDoc接口文档)
  6. bzoj1475
  7. javascript获取CSS3浏览器前缀
  8. Swift隐式可选型简单介绍
  9. 旧Mj下拉刷新 An instance 0xca90200 of class UITableView was deallocated while key value observers were s
  10. Eight
  11. component及刚体rigidbody用法
  12. JS“盒子模型”
  13. JAVA取数两个数组交集,考虑重复和不重复元素
  14. 一个会学习(观察->活学->求变)的人,在任何领域都能变得强大无比
  15. 解决mysql大小写敏感问题
  16. Mongodb的入门(8)mongodb事物分析
  17. 用EXCEL批量更改文件名,一个命令就能完成
  18. Jmeter+Ant+Jenkins搭建持续集成的接口测试框架
  19. B+树索引
  20. hdu 3599(最短路+最大流)

热门文章

  1. MongoDB Shell基本操作(五)
  2. 14 opencv读取XML
  3. 如何在Ubuntu的idea上运行Hadoop程序
  4. client-go客户端自定义开发Kubernetes及源码分析
  5. 关于 C# 8.0 的 Switch Case When 的用法
  6. Visual Studio Code 小记
  7. git 创建标签 tag
  8. sysstat工具包之mpstat
  9. 一张图搞定 .NET Framework, .NET Core 和 .NET Standard 的区别
  10. css sprite responsive实现探究