最近将项目迁移到CMake进行管理,对CMake进行了一些研究,觉得有一些命令非常实用但很少有资料提到,在这里做一个总结,至于太普通常用的命令就不提了。

OPTION(OPTION_VAR “Description” [initial value]):用于管理编译选项,定义并初始化自定义变量。

例:

OPTION(BUILD_TEST  "Build the test project" ON)

FIND_PATH(<VAR> name path1 path2):查找包含path1,path2的路径,可以在CMake界面中手动设置。可以用来设置包含库或者头文件的路径。

例:

FIND_PATH(LIB_INCLUDE_DIR Test)

FIND_LIBRARY(<VAR> name path1 path2 …):与FIND_PATH相似,需要得到指定文件路径。

FILE(GLOB variable [RELATIVE path] [globbing expressions]...):文件的基本操作,可用于查找指定目录中所有指定格式的文件,省去很多手动Set的麻烦。

例:

FILE(GLOB HEAD_Files “{CMAKE_SOURCE_DIR}/*.h”)

ADD_SUBDIRECTORY(src_dir [binary_dir] [EXCLUDE_FROM_ALL]):向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制的存放位置。

例:

ADD_SUBDIRECTORY(Common)

INSTALL(TARGETS targets... [EXPORT <export-name>] [...]):指定在安装时要运行的规则。可用于运行文件或者库文件的安装和复制。

例:

INSTALL(TARGETS main DESTINATION “../lib/main.cpp”)
INSTALL(FILES ${HEAD_Files} DESTINATION "../lib/include")

当工程中包含子目录时,设置子目录工程的dll或者lib的生成目录

SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})

CMake比较实用的命令小记的更多相关文章

  1. 所有Mac用户都需要知道的9个实用终端命令行

    通常情况下,只有高端用户才会经常用到终端应用.这并不意味着命令行非常难学,有的时候命令行可以轻松.快速的解决问题.相信所有Mac用户都尝试过命令行,今天为大家带来9个非常实用的命令行操作.一些命令行需 ...

  2. 所有Mac用户都需要知道的9个实用终端命令行<转>

    转自 http://www.macx.cn/thread-2075903-1-1.html 通常情况下,只有高端用户才会经常用到终端应用.这并不意味着命令行非常难学,有的时候命令行可以轻松.快速的解决 ...

  3. 正确Linux新手很实用20命令

     //正确Linux新手很实用20命令 //slwang  2014.4.19 1, ls list directory contents 内容 ls -l     //以详情模式(long li ...

  4. cmake的四个命令:add_compile_options、add_definitions、target_compile_definitions、build_command

    cmake的四个命令:add_compile_options.add_definitions.target_compile_definitions.build_command add_compile_ ...

  5. cmake的两个命令: option 和 configure_file

    本节要讨论的是cmake的两个命令: option 和 configure_file option 选项,让你可以根据选项值进行条件编译. configure_file 配置文件,让你可以在代码文件中 ...

  6. CentOS7中实用的命令总结

    一:软件安装配置方面 这里总结一下对个人很实用的功能 1.查询rpm包的依赖哪些文件:rpm -qpR xx.rpm,然后rpm会分析此包的文件依赖性 2.查询系统中安装了哪些rpm包:rpm -qa ...

  7. apache日志文件详解和实用分析命令

    apache日志文件每条数据的请意义,以及一些实用日志分析命令. 一.日志分析  如果apache的安装时采用默认的配置,那么在/logs目录下就会生成两个文件,分别是access_log和error ...

  8. 实用Linux命令,不求最全但求实用-------磁盘使用情况du,df

    命令: df -h 输出实例: 文件系统             容量    已用  可用  已用% 挂载点 /dev/md0              9.7G  4.7G  4.6G  51% / ...

  9. 15个实用find命令

    除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易. 本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令. 1. 用文 ...

随机推荐

  1. koa知识点

    1. Koa 不支持 直接调用底层 res 进行响应处理.请避免使用以下 node 属性: res.statusCode res.writeHead() res.write() res.end() 2 ...

  2. myeclipse激活时cracker2015.jar打不开

    myeclipse激活时cracker2015.jar打不开 可能是jdk版本的问题 这是我用的myeclipse版本 myeclipse-2016-ci-7-offline-installer-wi ...

  3. 新增了个job

    https://112.124.41.113/svn/wbhpro/wbh-adapter-job

  4. Kettle使用介绍

    本文主要阅读目录如下: 1.Kettle概念 2.下载和部署 3.Kettle环境配置 4.Kettle使用及组件介绍 ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装 ...

  5. ES(二):Kibana

    Kibana是一个基于浏览器页面的Elasticsearch前端展示工具.Kibana全部使用HTML语言和Javascript编写的,查询语法是基于Lucene的查询语法.允许布尔运算符.通配符和字 ...

  6. vs2008及以上的ActiveX测试容器在哪儿

    解压缩 vssetupdir \Samples\1033\VC2010Samples.zip ,位于C++\MFC\ole\TstCon\ vs2008中的sample的话,要改TCProps项目的L ...

  7. mysql多个时间戳字段默认值问题

    项目使用mysql数据库,在设计表时某张表有多个字段设计的类型是timestamp 但没有给默认值,在执行sql时报 timestamp Invalid default value for 'xxx' ...

  8. PLSQL不好用,提示ora-12514 错误解决方法

    我的PLSQL不好用,提示ora-12514 错误时 我分两步干的: 1:用户名,密码,不写,提示错误后,cancel登陆 tools->preference左侧选->connection ...

  9. C#如何获取CPU处理器核心数量 z

    有几条不同的处理器信息,您可以获得有关的信息:物理处理器数量.核心数量和逻辑处理器数量,这些可以不同.两颗双核超线程(启用)处理器的机器情况下有:2个物理处理器.4个核心和8个逻辑处理器. 逻辑处理器 ...

  10. 查看regulator的信息

    例如,查看ldo6 /sys/devices/soc.0/qcom,rpm-smd.35/rpm-regulator-ldoa6.85/regulator-l6.110/regulator/regul ...