zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    模板方法设计模式(未完待续)
    适配器模式
    g2o:一种图优化的C++框架
    U14.04 teamviewer install
    小教训
    卡2-SLAM
    Odometry的发布和发布odom到base_link的tf变换
    #pragma once
    友元
    Ubuntu 14.04 安装配置强大的星际译王(stardict)词典
  • 原文地址:https://www.cnblogs.com/alexYuin/p/8874386.html
Copyright © 2011-2022 走看看