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. 用文 ...
随机推荐
- GitLab常见使用方法
1.GitLab配置 git config --global user.name "xxx" -- 配置用户名,上传本地 repository 到服务器上的时候,在 Github ...
- 自动化运维:网站svn代码上线更新(flask+saltstack)
阶段性总结: 跌跌撞撞的用了一周左右的时间做完了网站自动升级功能,中间遇到了很多的问题,也学到了很多,在此做一个总结. 1.整体架构: 后台:nginx+uwsgi #nginx提供w ...
- eclipse简单使用
1.10个快捷键: 1. ctrl+shift+r:打开资源 Control-Shift-T: 打开类型(Open type) Control-Shift-F: CodeàJavaàPre ...
- UICollectionView的使用
感谢下面文章作者的无私奉献 基础用法: http://www.cnblogs.com/ios8/p/iOS-UICollectionView.html http://my.oschina.net/jo ...
- css3基础、(弹性、响应式)布局注意点
E1>E2选择父元素为E元素的所有E2元素(子类选择器) E1+E2选择元素为E1之后的所有E2元素(兄弟选择器) E[attr]只使用属性名,但没有确定任何属性值 E[attr="v ...
- <<Exceptional C++>> notes
- class Complex { public: ) : real_(real), imaginary_(imaginary) { } Complex& operaor+=(const Co ...
- C#中Validating和Validated事件
http://blog.sina.com.cn/s/blog_6116673a0100fpeo.html 待解读
- PHP常用函数(1)
1. create_linkstring 说明: 把数组拼接成字符串 if (!function_exists('create_linkstring')) { /** * 把数组所有元素,按照“参数= ...
- archlinux 打印机驱动安装
#安装驱动# pacman -S cups ghostscript gsfonts gutenprint#启动服务# systemctl start/enable org.cups.cupsd.ser ...
- Liunx 常用命令
Liunx 常用命令================================================================================ 1. 远程拷贝文件 ...