All Projects → chen3feng → Blade Build

chen3feng / Blade Build

Licence: other
Blade is a powerful build system from Tencent, supports many mainstream programming languages, such as C/C++, java, scala, python, protobuf...

Programming Languages

python
139335 projects - #7 most used programming language
Vim Script
2826 projects
shell
77523 projects
Thrift
134 projects
Starlark
911 projects
Cuda
1817 projects

Projects that are alternatives of or similar to Blade Build

Pants
The Pantsbuild developer workflow system
Stars: ✭ 1,814 (+5.34%)
Mutual labels:  build-tool, build-system, monorepo, protobuf
Please
High-performance extensible build system for reproducible multi-language builds.
Stars: ✭ 1,856 (+7.78%)
Mutual labels:  build-tool, build-system, monorepo
Crossbuild
🌍 multiarch cross compiling environments
Stars: ✭ 632 (-63.3%)
Mutual labels:  build-tool, build-system
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (-59.64%)
Mutual labels:  build-tool, build-system
Hopp
Crazy rapid build system.
Stars: ✭ 24 (-98.61%)
Mutual labels:  build-tool, build-system
Ultra Runner
🏃⛰ Ultra fast monorepo script runner and build tool
Stars: ✭ 496 (-71.2%)
Mutual labels:  build-tool, monorepo
Erlang.mk
A build tool for Erlang that just works.
Stars: ✭ 538 (-68.76%)
Mutual labels:  build-tool, build-system
Swift Llbuild
A low-level build system, used by Xcode and the Swift Package Manager
Stars: ✭ 836 (-51.45%)
Mutual labels:  build-tool, build-system
makesure
Simple task/command runner with declarative goals and dependencies
Stars: ✭ 230 (-86.64%)
Mutual labels:  build-tool, build-system
Metav
Release and Versioning of Clojure projects using tools.deps
Stars: ✭ 62 (-96.4%)
Mutual labels:  build-tool, monorepo
Pi Builder
Extensible tool to build Arch Linux ARM for Raspberry Pi on x86_64 host using Docker
Stars: ✭ 31 (-98.2%)
Mutual labels:  build-tool, build-system
Projectbuilder
A tool for easy automating and customizing build process for Unity.
Stars: ✭ 80 (-95.35%)
Mutual labels:  build-tool, build-system
Cbt
CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala
Stars: ✭ 489 (-71.6%)
Mutual labels:  build-tool, build-system
Bake
A build system that lets you clone, build and run C/C++ projects with a single command
Stars: ✭ 434 (-74.8%)
Mutual labels:  build-tool, build-system
Realize
Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.
Stars: ✭ 4,162 (+141.7%)
Mutual labels:  build-tool, build-system
Toast
Containerize your development and continuous integration environments. 🥂
Stars: ✭ 748 (-56.56%)
Mutual labels:  build-tool, build-system
Walk
A fast, general purpose, graph based build and task execution utility.
Stars: ✭ 108 (-93.73%)
Mutual labels:  build-tool, build-system
BuildAMation
Build system and project generator for C/C++ desktop software development. Uses C# for build scripts. It is no longer under active development.
Stars: ✭ 13 (-99.25%)
Mutual labels:  build-tool, build-system
obs-docu
Official Open Build Service Documentation. Content gets reviewed and edited. Generated books are available at http://www.openbuildservice.org
Stars: ✭ 26 (-98.49%)
Mutual labels:  build-tool, build-system
Wonderbuild
Wonderbuild is an extremely fast, extensible build tool
Stars: ✭ 9 (-99.48%)
Mutual labels:  build-tool, build-system

Blade Build System

license NewBSD Python Code Style Platform

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

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

Click here to read 中文文档.

Build Status

Build Status codebeat badge Coverage

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.

  • Version 2.0 is in release candidate! It includes the following notable changes:

    • minimal python version 2.7, support python 3
    • Support Java, scala building
    • Full support to Python
    • Support custom extensions
    • Only use ninja as backend build system, increases speed dramatically.

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

  • Auto dependency analysis, includes header files and libraries.
  • Test integration: built-in support of gtest. Support incremental testing and parallel testing.
  • Simple syntax, easy to use.
  • Simple command line interface similar to git/svn.
  • Memory leak checking in tests(with gperftools).
  • Bash command line completion.
  • Colorful diagnostic message displaying.
  • Vim integration, includes syntax highlighting, quick fix.

Documentation

Credits

  • Blade is inspired by Google's public information about their build system. Here is a reference article from Google's official blog: build in cloud: how build system works.

    Later in 2015, they released it with partial rewritten as bazel open-source build system.

  • Blade generates Ninja script internally, so of course it depends on ninja.

  • Python is a powerful and easy-to-used language, we like python.

  • Some libraries open sourced by Google, such as protobuf, gtest, gperftools are handy and powerful, we have integrated these libraries.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].