chen3feng / blade-build

Blade is a powerful build system from Tencent, supports many mainstream programming languages, such as C/C++, java, scala, python, protobuf...
Other
2.05k stars 501 forks source link
build-system build-tool cplusplus java monorepo multilingual ninja protobuf python scala

Blade Build System

license NewBSD Python Code Style Platform

██████╗ ██╗      █████╗ ██████╗ ███████╗
██╔══██╗██║     ██╔══██╗██╔══██╗██╔════╝
██████╔╝██║     ███████║██║  ██║█████╗
██╔══██╗██║     ██╔══██║██║  ██║██╔══╝
██████╔╝███████╗██║  ██║██████╔╝███████╗
╚═════╝ ╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝

English | 简体中文

An easy-to-use, fast and modern build system for trunk based development in large-scale monorepo codebase.

Build Status

Build Status codebeat badge Coverage Downloads

Demo

First, let's see a cool demo:

asciicast

Releases

The code on the master branch is development version and should be considered as alpha version. Please prefer using the version on the tags in your formal environment. We will release the verified version on the large-scale internal code base to the tag from time to time.

Please follow the Upgrade Notes to upgrade.

Stargazers over time

Stargazers over time

Brief

Blade is designed to be a modern build system. It is powerful and easy to use. It supports building multiple languages, such as c/c++, java, python, scala, protobuf, etc. It analyzes the target dependency automatically and integrates compiling, linking, testing(includes incremental testing and parallel testing) and static code inspectiontogether. It aims to improve the clarity and simplicity of the building rules for a project.

With Blade, you can compile, link and test multiple targets by just inputting one simple command line. For example:

Build and test all targets in common directory recursively.

blade test common...

Build and test targets as 32 bit

blade test -m32 common...

Build and test targets as debug mode

blade test -pdebug common...

And you can combine the flags together:

blade test -m32 -pdebug common...

Features

Documentation

Contributers

Contributers

Credits