(1)blade是什么
一个构建工具,根据BUILD文件构建目标,类似于make根据Makefile文件构建目标。
(2)blade优点:
先看makefile的缺点:
blade优点:
Blade 通过一系列的名字为 “BUILD” 的文件(文件名全大写),这些文件需要开发者去编写。每个 BUILD文件通过一组目标描述函数描述了一个目标的源文件,所依赖的其他目标,以及其他一些属性。
(1)项目结构
$ ls -1
BLADE_ROOT // 在源代码的根目录下,也是项目的全局配置
common
thirdparty
xfs
your_project
...
(2)BUILD文件书写
BUILD文件写名要编译的target和target的描述,通俗理解相当于自我介绍。
使用比较多的target:cc_library、cc_binary、cc_test、proto_library。proto_library是proto buffer。
cc_library是编译成链接库,默认是静态链接库
srcs是源码,incs是增加编译源文件时的头文件查找路径,defs是用户定义的宏加入编译中deps是依赖的链接库,extra_cppflags是可以自定义的额外的C/C++编译flags。
cc_library(
name = 'string',
srcs = [
'algorithm.cpp',
'concat.cpp'
],
incs = [
'../coommon'
],
defs = ['POCO_OS_FAMILY_UNIX'],
deps = ['//common/base:int', '#libpthread'],
extra_cppflags = ['-std=gnu++11', '-Wno-sign-compare', '-Wno-non-virtual-dtor'],
)
风格建议:
deps的格式:
(3)blade命令行参数
blade build …:编译当前目录包含子目录
blade build :name:编译name target
blade clean:清除构建的目标和缓存
(4)辅助工具
Reference:
[1] github地址:https://github.com/chen3feng/blade-build
[2] 辅助工具地址:https://github.com/chen3feng/blade-build/tree/master/tool