cmake_blade对比学习
cmake常用字段及编译流程
常用字段
- cmake_minimum_required ///检查cmake的版本
- project(lac) //工程名为lac
- option //脚本定义宏:编译脚本传递参数 -> CMake脚本接收option -> 源代码宏
- set(定义变量a 路径b) //用变量代替值,定义a代替后面的b
- message //为用户显示一条信息
- macro 定义函数
- foreach //for循环
- if ( IS_ABSOLUTE name ) //如果给定的name是一个绝对路径
- get_filename_component //得到一个完整文件名中的特定部分
- CMAKE_BINARY_DIR,PROJECT_BINARY_DIR,_BINARY_DIR://这三个变量内容一致,如果是内部编译,就指的是工程的顶级目录,如果是外部编译,指的就是工程编译发生的目录。
- include_directories://将根目录下的include和abc加入包含目录列表,默认会将目录添加到列表最后
- link_directories(${PROJECT_SOURCE_DIR}/lib) //将 ./lib加入编译器链接阶段的搜索目录列表
- aux_source_directory //查找在某个路径下的所有源文件。
- add_library//将指定的源文件生成链接文件,然后添加到工程中去。
- add_executable //使用指定的源文件来生成目标可执行文件。
- set_target_properties//导入第三方so库
- target_link_libraries //将目标文件与库文件进行链接
编译流程
cmake ..
make
blade常用字段及编译流程
环境
python:只支持python2
scons:Python写的自动化构建工具。
blade:
cd ./thirdparty/typhoon-blade-1.1.2 #在第三方库中找到这个库
./install #执行shell安装脚本
(如果没有权限,chmod 777 install )
which blade #查看安装路径(能查看到,说明安装成功)
如果按上述方式没成功,download已有的typhoon-blade-1.1.2 ,修改install中bin路径,并进行chmod。
示例
常用字段
- cc_library:编译成链接库,默认是静态链接库
- name值得是这个binary的名字
- srcs是要编译这个binary需要的源文件
- deps是编译这个binary所需要的依赖。
- incs是增加编译源文件时的头文件查找路径
- defs是用户定义的宏加入编译中
编译流程
blade build BUILD中定义的目标名
blade test 生成的可执行文件 //编译单元测试