Broc 面向c/c++语言的构建工具开源项目

我要开发同款
匿名用户2016年03月28日
36阅读
开发技术Python
所属分类开发工具、C/C++开发工具
授权协议Apache-2.0

作品详情

broc是一款面向c/c++语言的构建工具,提供了编译、分支依赖、依赖模块下载等功能。不同于make,cmake等以库文件链接的编译方式,broc将依赖库源代码与程序源代码一并同时进行编译,这种方式可以避免程序源代码与依赖库编译选项或平台不一致导致的软件兼容性问题;broc支持编译结束后自动运行单元测试用例;借助Jenkinsbroc还能完成软件的持续集成。

优势

源码编译broc支持将程序以及依赖库从源码状态进行编译,解决了c/c++程序因编译选项、操作系统平台或库文件版本不同而造成的兼容性问题;

代码自动下载broc支持自动checkout[依赖模块][4]源代码到本地然后进行编译,用户无需编写控制脚本来实现此功能;

分支依赖broc支持指定依赖库的主干、分支和TAG,broc能自动识别并解决库文件传递性依赖问题;

语法简单Makefile复杂的语法让人望而却步,而broc语法简洁,易上手;

增量编译靠谱make通过文件的修改时间来判断文件是否需要进行再编译,当文件版本回滚后或编译参数变更后,make不会对文件再次进行编译;broc除了使用文件的修改时间,还基于文件内容的哈希值以及编译参数作为增量编译的判断标准,增量编译的准确性会更高;

支持protobufbroc内置对protobuf的支持,将proto文件编译成静态库.a文件一步完成

安装配置

系统要求

操作系统Linux

工具要求

Python版本>=2.6.6,建议使用2.7版本

git版本>=2.1.2

svn版本>=1.7

gcc/g++broc使用g++/gcc进行编译,需要事先安装好

protobufbroc使用了protobuf,自带了protobuf的安装包

安装

下载代码gitclonehttps://github.com/baidu/broc.gitbaidu/broc

安装protobuf进入到tools目录执行shinstallprotobuf,protobuf被安装在$HOME/protobuf目录下

处理proto文件进入到tools目录下面执行shinstallproto,生成broc自用的py文件

设置PATH将broc的client目录设置到PATH中,例如:exportPATH=$HOME/broc/client:$PATH

broc配置

broc安装完后,执行broc命令可以生成broc的配置文件,配置文件位于用户的$HOME目录下:~/.broc.rc配置文件内容:

[repo]svn_repo_domain=https://github.comgit_repo_domain=https://github.comsvn_postfix_branch=BRANCHsvn_postfix_tag=PD_BL

svn_repo_domain  svn仓库域名

git_repo_domain  git仓库域名

svn_postfix_branch svnurl中branch名后缀

svn_postfix_tag  svnurl中tag名后缀

参数svn_repo_domain和git_repo_domain分别表示SVN和GIT代码库的域名,配置成自己域名即可。一个依赖库出现不同版本时需要对版本进行对比,确定编译时要使用的依赖模块版本;SVN管理的依赖模块版本的对比是通过模块的svnurl来完成的,因此broc要求svnurl有统一的命名方法。在SVNURL中进行了详细说明,可以参照此方法根据自己的实际情况对svn_postfix_branch,svn_postfix_tag进行配置。

使用手册

https://github.com/baidu/broc/wiki/broc-tutorial

构建规范

https://github.com/baidu/broc/wiki/broc-manual

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论