zoukankan      html  css  js  c++  java
  • 03-cmake语法-变量,字符串

    CMake的基本数据类型是字符串(不区分大小写),一组字符串在一起称为列表(list)。

    条件判断中的取值情况如下表:

    1, ON, YES, TRUE, Y, 非0的数 
    0, OFF, NO, FALSE, N, IGNORE, 空字符串,以“-NOTFOUND”结尾的字符串

    变量显式定义

    set(VAR a b c)
    
    # 输出 VAR = a;b;c
    
    message("VAR = ${VAR}")
    

     set(VAR a)就是一个字符串,set(VAR a b c)就是一个字符串list。

    set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")

    CACHE PATH表示的含义暂时还没搞清楚。

      

    常用部分内部变量

    使用是,使用 set 命令赋值。

    比如:

    set(CMAKE_BUILD_TYPE "Debug")
    

      

    CMAKE_C_COMPILER 指定C编译器
    CMAKE_CXX_COMPILER  
    CMAKE_C_FLAGS 编译C文件时的选项,如-g;也可以通过add_definitions添加编译选项
    EXECUTABLE_OUTPUT_PATH 可执行文件的存放路径
    LIBRARY_OUTPUT_PATH 库文件路径
    CMAKE_BUILD_TYPE build 类型(Debug, Release, ...),CMAKE_BUILD_TYPE=Debug
    BUILD_SHARED_LIBS 生成分享库
    BUILD_LIBS 生成静态库

    CMAKE_BINARY_DIR

    一样的,cmake 的时候,所在的路径。(一般,我们新建build,然后cd进去,再cmake ..,这个路径就是build)(一般我们希望cmake生成的东西单独在一个文件夹,就是指这里)
    PROJECT_BINARY_DIR
    <projectname>_BINARY_DIR

    CMAKE_SOURCE_DIR

    一样的,表示工程顶层目录。(和以上的区别,就是这的路径为build之外,一般指源代码所在文件路径)。

    PROJECT_SOURCE_DIR

    <projectname>_SOURCE_DIR

    CMAKE_CURRENT_SOURCE_DIR  CMakeLists.txt 所在路径

    CMAKE_CURRRENT_BINARY_DIR

     如果是 in-source 编译(没有新建build),它跟 CMAKE_CURRENT_SOURCE_DIR 一致,如果是 out-of-source 编译(新建了build),他指的是 target 编译目录。

    CMAKE_CURRENT_LIST_FILE

     输出调用这个变量的 CMakeLists.txt 的完整路径

    CMAKE_CURRENT_LIST_LINE

     输出这个变量所在的行

    CMAKE_MODULE_PATH

     这个变量用来定义自己的 cmake 模块所在的路径。也就是xxx.cmake文件

    EXECUTABLE_OUTPUT_PATH 

     用来重新定义最终结果的存放目录,可执行文件

    LIBRARY_OUTPUT_PATH

     用来重新定义最终结果的存放目录,库文件

    PROJECT_NAME

    返回通过 PROJECT 指令定义的项目名称

    CMAKE_BUILD_TYPE ***

    生成 Debug 版和 Release 版的程序

    CMAKE_CXX_FLAGS_DEBUG 

    ***为Debug,使用这个参数生成 Makefile

    CMAKE_C_FLAGS_DEBUG 

    ***为Debug,使用这个参数生成 Makefile

    CMAKE_CXX_FLAGS_RELEASE 

    ***为Release,使用这个参数生成 Makefile

    CMAKE_C_FLAGS_RELEASE 

    ***为Release,使用这个参数生成 Makefile

    示例:

    PROJECT(main)
    CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
    SET(CMAKE_SOURCE_DIR .)
    
    SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
    SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
    
    AUX_SOURCE_DIRECTORY(. DIR_SRCS)
    ADD_EXECUTABLE(main ${DIR_SRCS})
    

      

    将工程设置为Debug模式:

    SET(CMAKE_BUILD_TYPE "Debug")

    变量引用

    使用 ${} 比如:

    ${CMAKE_BINARY_DIR}
    

      

    参考

    http://www.cnblogs.com/xianghang123/p/3556423.html

    https://www.jianshu.com/p/44ba033c262a

  • 相关阅读:
    apache性能测试工具ab
    MyBatis
    微信小程序时间戳的转换及调用
    关于微信里wx.getUserInfo获取用户信息都是拼音的转成中文方法
    CSS斜切角
    css hsla和rgba的区别
    js中 onreadystatechange 和 onload的区别
    HTML5语音合成Speech Synthesis API简介
    position inherit 定位
    CSS3选择器:nth-child和:nth-of-type之间的差异
  • 原文地址:https://www.cnblogs.com/alexYuin/p/8874579.html
Copyright © 2011-2022 走看看