CMake学习笔记(⼆)——CMake语法
CMake学习笔记(⼆)——CMake语法
上⼀篇学习笔记,笔者简单浏览了 CMake 官⽹提供的教程,但感觉并不系统,⽽且对很多指令并没有进⾏解释,所以只写了⼀半就放弃了……⽽且笔者英语也不好,索性还是直接在国内⽹站上别⼈的总结,然后⾃⼰综合学⼀下吧……
前⾔:
1、每⼀个需要进⾏cmake操作的⽬录下⾯,都必须存在⽂件<font color=red& </font>。
2、cmake指令<font color=red>不区分⼤⼩写</font>。本⽂为了醒⽬,笔者把cmake指令都作⼤写处理。
3、变量使⽤${}⽅式取值,但是在 IF 控制语句中是直接使⽤变量名;
4、指令(参数 1 参数 2…),参数使⽤括弧括起,参数之间使⽤空格或分号分开;
⼀. CMake中常⽤预定义变量
1. CMake的预定义变量
PROJECT_SOURCE_DIR:⼯程根⽬录;
PROJECT_BINARY_DIR:运⾏cmake命令的⽬录。笔者建议定义为${PROJECT_SOURCE_DIR}/build下。具体原因见后⽂外部编译部分;
CMAKE_INCLUDE_PATH:环境变量,⾮cmake变量;
CMAKE_LIBRARY_PATH:环境变量;
CMAKE_CURRENT_SOURCE_DIR:当前处理的⽂件所在路径;
CMAKE_CURRENT_BINARY_DIR:target编译⽬录;
使⽤ADD_SURDIRECTORY指令可以更改该变量的值;
SET(EXECUTABLE_OUTPUT_PATH < dir >) 指令不会对该变量有影响,但改变了最终⽬标⽂件的存储路径;
CMAKE_CURRENT_LIST_FILE:输出调⽤该变量的的完整路径;
CMAKE_CURRENT_LIST_LINE:输出该变量所在的⾏;
CMAKE_MODULE_PATH:定义⾃⼰的cmake模块所在路径;
EXECUTABLE_OUTPUT_PATH:重新定义⽬标⼆进制可执⾏⽂件的存放位置;
LIBRARY_OUTPUT_PATH:重新定义⽬标链接库⽂件的存放位置;
PROJECT_NAME:返回由PROJECT指令定义的项⽬名称;
CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS:⽤来控制IF...语句的书写⽅式;
2. 系统信息预定义变量
CMAKE_MAJOR_VERSION cmake主版本号,如2.8.6中的2
CMAKE_MINOR_VERSION cmake次版本号,如2.8.6中的8
CMAKE_PATCH_VERSION cmake补丁等级,如2.8.6中的6
CMAKE_SYSTEM 系统名称,例如Linux-2.6.22
CMAKE_SYSTEM_NAME 不包含版本的系统名,如Linux
CMAKE_SYSTEM_VERSION 系统版本,如2.6.22
CMAKE_SYSTEM_PROCESSOR 处理器名称,如i686
cmake如何使用
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论