现代构建系统 Typhoon Blade

Apache
C/C++
Linux
腾讯
2012-08-22
红薯

Blade 是一个现代构建系统,期望的目标是强大而好用,把程序员从构建的繁琐中解放出来。

Blade主要定位于linux下的大型C++项目,密切配合研发流程,比如单元测试,持续集成,覆盖率统计等。但像unix下的文本过滤程序一 样,保持相对的独立性,可以单独运行。目前重点支持i386/x86_64 Linux,未来可以考虑支持其他的类Unix系统。

为了解决 GNU Make,Autotools 的难用和繁琐的问题,我们开发了一个构建系统,整个 系统基于多个声明式的构建脚本,在构建脚本里,只需要声明要构建什么目标,目标的源 代码,以及其直接依赖的其他目标,不需要说明如何构建。

一行命令,编译连接单元测试就可以全部搞定。

特点:

  • 自动分析头文件依赖关系,构建受影响的代码。

  • 增量编译和链接,只构建因变更受影响而需要构建的。

  • 自动计算库的间接依赖,库的作者只需要写出直接依赖,构建时自动检查所依赖的库是否需要重新构建。

  • 在任意代码树的任意子目录下都能构建。

  • 支持一次递归构建多个目录下的所有目标,也支持只构建任意的特定的目标。

  • 无论构建什么目标,这些目标所依赖的目标也会被自动连坐更新。

  • 内置 debug/release 两种构建类型。

  • 彩色高亮构建过程中的错误信息。

  • 支持 ccache

  • 支持 distcc

  • 支持基于构建多平台目标

  • 支持构建时选择编译器(不同版本的gccclang等)

  • 支持编译 protobuflex, yacc, swig

  • 支持自定义规则

  • 支持测试,在命令行跑多个测试

  • 支持并行测试(多个测试进程并发运行)

  • 支持增量测试(无需重新运行的测试程序自动跳过)

  • 集成 gperftools,自动检测测试程序的内存泄露

  • 构建脚本 vim 语法高亮

  • svn 式的子命令命令行接口。

  • 支持 bash 命令行补全

  • 用 Python 编写,无需编译,直接安装使用。

彻底避免以下问题:

  • 头文件更新,受影响的模块没有重新构建。

  • 被依赖的库需要更新,而构建时没有被更新,比如某子目录依赖遥远的某外部目录的代码,我在这个目录构建,外部目录的代码会被自动检查是否也需要重新构建。

加载中

评论(1)

C
CSure
能够部分动态编译,部分静态编译 #Typhoon Blade#

暂无资讯

1
回答
laravel框架内的多级模版继承关系

框架模版目录: view | |--mobile | |--defaults | | | |--frame.blade.php | |--traffick...

2015/04/10 20:58
1
回答
怎么收藏软件? http://www.oschina.net/p/blade

http://www.oschina.net/p/blade 在这个页面上。 刚才我试图收藏,但找不到按钮。。。

2012/08/23 10:09

没有更多内容

加载失败,请刷新页面

没有更多内容

TODO:Laravel 使用blade标签布局页面

TODO:Laravel 使用blade标签布局页面 本文主要介绍Laravel的标签使用,统一布局页面。主要用到到标签有@yield,@ stack,@extends,@section,@stop,@push。使代码精简、提高页面下载速度、...

2016/12/17 21:03
53
0
Laravel5学生成绩管理系统-02-Blade模板

Blade 是 Laravel 所提供的一个简单且强大的模板引擎。相较于其它知名的 PHP 模板引擎,Blade 并不会限制说你必须得在视图中使用 PHP 代码。所有 Blade 视图都会被编译缓存成普通的 PHP 代码...

2016/04/24 09:21
173
1
博科交换机命令

博科关系交换机命令

2016/09/12 20:09
266
0
Linux无盘工作站架设实例

Linux无盘工作站架设实例 客户端是支持PXE方式启动的刀片,用Linux作为服务器,服务器配置如下: 作者:兄弟连 1) 安装DHCP服务器dhcpd 2) 配置/etc/dhcpd.conf文件,下面是我机器上的文件 ma...

2016/11/30 14:35
12
0
laravel视图&模板

laravel视图&模板

2016/06/01 09:16
79
0
spring boot 集成 mybatis 3.4

spring boot 集成 MyBatis 3.4

2016/08/03 22:24
135
0
Blade模板命令集

Blade是Laravel框架下使用的模板引擎,不同于我们原来所熟悉的smart等模板,blade是由模板继承与模板片段构成.

2014/10/06 01:04
6.8K
2
这个狂拽炫酷屌炸天的超级本广告是谁渲染的?

Razer今年推出其首款超级本——Razer Blade Stealth灵刃潜行版。Cum.将他们的广告创意提供给瑞云科技,瑞云在最短时间内渲染出这支震撼眼球的广告,用极具视觉冲击力的画面将Razer Blade Ste...

2016/04/05 16:40
12
1
Chaos Engineering工程实战--chaosblade

Chaos Engineering(混沌工程),相信搞互联网的或多或少都听过,Netflix发明了Chaos Monkey,经过社区的发展回馈,慢慢行成了Chaos Engineering,当你看到这边文章的时候,相信你对混沌工程是...

06/10 16:30
100
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部