CMake比较实用的命令小记
最近将项目迁移到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比较实用的命令小记的更多相关文章
- 所有Mac用户都需要知道的9个实用终端命令行
通常情况下,只有高端用户才会经常用到终端应用.这并不意味着命令行非常难学,有的时候命令行可以轻松.快速的解决问题.相信所有Mac用户都尝试过命令行,今天为大家带来9个非常实用的命令行操作.一些命令行需 ...
- 所有Mac用户都需要知道的9个实用终端命令行<转>
转自 http://www.macx.cn/thread-2075903-1-1.html 通常情况下,只有高端用户才会经常用到终端应用.这并不意味着命令行非常难学,有的时候命令行可以轻松.快速的解决 ...
- 正确Linux新手很实用20命令
//正确Linux新手很实用20命令 //slwang 2014.4.19 1, ls list directory contents 内容 ls -l //以详情模式(long li ...
- cmake的四个命令:add_compile_options、add_definitions、target_compile_definitions、build_command
cmake的四个命令:add_compile_options.add_definitions.target_compile_definitions.build_command add_compile_ ...
- cmake的两个命令: option 和 configure_file
本节要讨论的是cmake的两个命令: option 和 configure_file option 选项,让你可以根据选项值进行条件编译. configure_file 配置文件,让你可以在代码文件中 ...
- CentOS7中实用的命令总结
一:软件安装配置方面 这里总结一下对个人很实用的功能 1.查询rpm包的依赖哪些文件:rpm -qpR xx.rpm,然后rpm会分析此包的文件依赖性 2.查询系统中安装了哪些rpm包:rpm -qa ...
- apache日志文件详解和实用分析命令
apache日志文件每条数据的请意义,以及一些实用日志分析命令. 一.日志分析 如果apache的安装时采用默认的配置,那么在/logs目录下就会生成两个文件,分别是access_log和error ...
- 实用Linux命令,不求最全但求实用-------磁盘使用情况du,df
命令: df -h 输出实例: 文件系统 容量 已用 可用 已用% 挂载点 /dev/md0 9.7G 4.7G 4.6G 51% / ...
- 15个实用find命令
除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易. 本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令. 1. 用文 ...
随机推荐
- 安装oracle数据库,登录 时无法连接目标机
oracle11g 在dos命令里输入输入sqlplus 输入如用户名: 输入口令: 还是无法连接 解决办法: 输入sqlplus/nolog按enter键再输入conn/as sysdba就好了
- js封装包
(function () { //check the class name , it will be replaced when existed if (window.IQCBase) { //ret ...
- IOS开发之网络编程开源类 Reachability应用
先看Reachability.h发现 #import <Foundation/Foundation.h> #import <SystemConfiguration/SystemCon ...
- <<redis设计和实现>>读书笔记
redis如何实现主从同步的高效率?? 主从复制的同步有一个命令数据的同步文本,然后利用两个不同服务器的偏移量来进行进行同步,避免每次都是全部同步(并非会保存所有的命令数据,而是会有一个缓冲区(比如1 ...
- ext4 disable journal
ext4 disable journal At one high loaded web project I needed a very fast file system. I decided to u ...
- org.apache.catalina.LifecycleException tomcat 启动 maven 处处都是坑!!!
问题1:tomcat不识别maven工程解决办法:project右击->Properties->Project Facets,选择Dynamic Web Module及其版本(tomcat ...
- linux 出core设置问题
我所在的环境是RedHat 1.第一步 修改/etc/security/limits.conf添加一行 user为生效的用户 user hard core unlimited 2.第二步 在普通用户的 ...
- 创建javascript对象的几种方式
ECMAScript提供的对象有:String.Date.Array.Boolean.Math.Number.RegExp.Global 程序中需要用到很多自定义的js对象 1.直接创建 var ob ...
- X.509证书生成
创建数字证书 用户对数字证书的认可决定于对证书颁发机构的信任,所以证书颁发机构决定了数字证书的可用范围.由于官方认可的数字证书颁发机构,比如VeriSign.Thawte(OpenSSL),具有普遍的 ...
- Microsoft Visual Studio has encountered a problem
VS 2010 断点调试的时候,一运行到断点就报这个错误"Visual Studio has encountered a problem and needs to close", ...