Buck - An Android build tool from Facebook

  •        263

Buck is a build system for Android that encourages the creation of small, reusable modules consisting of code and resources. Because Android applications are predominantly written in Java, Buck also functions as a Java build system. Buck builds independent artifacts in parallel to take advantage of multiple cores. Further, it reduces incremental build times by keeping track of unchanged modules so that the minimal set of modules is rebuilt.

https://buckbuild.com/
https://github.com/facebook/buck`

Tags
Implementation
License
Platform

   




Related Projects

phing - PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.


(PH)ing (I)s (N)ot (G)NU make; it's a PHP project build system or build tool based on Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP "task" classes make it an easy-to-use and highly flexible build framework. Features include running PHPUnit tests (including test result and coverage reports), file transformations (e.g. token replacement, XSLT transformation, Smarty template transformations), file system operations, interactive build support, SQL execution, SVN/GIT operations, tools for creating PEAR packages, documentation generation (DocBlox, PhpDocumentor) and much, much more.

Cake - (C# Make) is a cross platform build automation system


Cake (C# Make) is a build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages. Cake is built on top of the Roslyn compiler which enables you to write your build scripts in C#. It supports the most common tools used during builds such as MSBuild, MSTest, xUnit, NUnit, NuGet, ILMerge, WiX and SignTool out of the box.

Bazel - Google's own build tool


Bazel is a build tool that builds code quickly and reliably. It is used to build the majority of Google's software, and thus it has been designed to handle build problems present in Google's development environment. A comprehensive, built-in set of rules lets you build software for a wide variety of languages and platforms right out of the box.

Graddle - Build Process Automation


Gradle pushes declarative builds to the next level by providing declarative language elements that you can assemble as you like. Those elements also provide build-by-convention support for Java, Groovy, OSGi, Web and Scala projects. This declarative language is extensible, add yours or extend exiting one.

jsc-android-buildscripts - Script for building JavaScriptCore for Android (for React Native but not only)


The aim of this project is to provide maintainable build scripts for the JavaScriptCore JavaScript engine and allow the React Native project to incorporate up-to-date releases of JSC into the framework on Android. This project is based on facebook/android-jsc but instead of rewriting JSC's build scripts into BUCK files, it relies on CMake build scripts maintained in a GTK branch of WebKit maintained by the WebKitGTK team (great work btw!). Thanks to that, with just a small amount of work we should be able to build not only current but also future releases of JSC. An obvious benefit for everyone using React Native is that this will allow us to update JSC for React Native on Android much more often than before (note that facebook/android-jsc uses JSC version from Nov 2014), which is especially helpful since React Native on iOS uses the built-in copy of JSC that is updated with each major iOS release (see this as a reference).


Pants - Build System for Software Projects in a variety of Languages


Pants is a build system for software. It works particularly well for a source code workspace containing many distinct but interdependent pieces. It is optimizes for building multiple, dependent things from source, building code in a variety of languages, speed of build execution. A Pants build sees only the target it's building and the transitive dependencies of that target. This approach works well for a big repository containing several things.

Buildbot - Continuous Integration Framework


Buildbot is a continuous integration system designed to automate the build/test cycle. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. It supports arbitrary build processes, and is not limited to common build processes for particular languages. Buildbot has a variety of status-reporting tools to get information about builds in a timely manner.

Kobalt - A Kotlin-based build system for the JVM


Kobalt is a build system inspired by Gradle and Maven. It reuses the best concepts from these two successful and popular build systems while adding a few modern features of its own. Kobalt is written entirely in Kotlin and its build files are valid Kotlin files as well.

Apache Gump - Large scale continuous integration for various open source projects.


The Apache Gump continuous integration tool was the first one developed at the Apache Software Foundation. It is written in Python and fully supports Apache Ant, Apache Maven (1.x to 3.x) and other build tools. Gump is unique in that it builds and compiles software against the latest development versions of those projects. This allows Gump to detect potentially incompatible changes to that software just a few hours after those changes are checked into the version control system. Notifications are sent to the project team as soon as such a change is detected, referencing more detailed reports available online.

cbt - CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala


Easy to learn and master, lightning fast and backed by a thriving community of enthusiasts and contributors. For talks, development roadmap, projects using cbt, etc see the wiki. CBT is a build tool meaning it helps orchestrating compilation, code and documentation generation, packaging, deployment and custom tooling for your project. It mainly targets Scala projects but is not exclusive to them.

gradle - Adaptable, fast automation for all


Gradle is a build tool with a focus on build automation and support for multi-language development. If you are building, testing, publishing, and deploying software on any platform, Gradle offers a flexible model that can support the entire development lifecycle from compiling and packaging code to publishing web sites. Gradle has been designed to support build automation across multiple languages and platforms including Java, Scala, Android, C/C++, and Groovy, and is closely integrated with development tools and continuous integration servers including Eclipse, IntelliJ, and Jenkins. This project adheres to the Gradle Code of Conduct. By participating, you are expected to uphold this code.

task - A task runner / simpler Make alternative written in Go


Task is a simple tool that allows you to easily run development and build tasks. Task is written in Golang, but can be used to develop any language. It aims to be simpler and easier to use then GNU Make.Or you can download the binary from the releases page and add to your PATH. DEB and RPM packages are also available. The task_checksums.txt file contains the SHA-256 checksum for each file.

buildout - Buildout is a deployment automation tool written in and extended with Python


Assembly runs the gamut from stitching together libraries to create a running program, to production deployment configuration of applications, and associated systems and tools (e.g. run-control scripts, cron jobs, logs, service registration, etc.). Buildout might be confused with build tools like make or ant, but it is a little higher level and might invoke systems like make or ant to get its work done.

swift-llbuild - A low-level build system, used by Xcode 9 and the Swift Package Manager


A low-level build system. llbuild is a set of libraries for building build systems. Unlike most build system projects which focus on the syntax for describing the build, llbuild is designed around a reusable, flexible, and scalable general purpose build engine capable of solving many "build system"-like problems. The project also includes additional libraries on top of that engine which provide support for constructing bespoke build systems (like swift build) or for building from Ninja manifests.

Jenkins - Continuous Integration Server


Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. It focuses on two things, Building/testing software projects continuously and Monitoring executions of externally-run jobs. Jenkins can distribute build/test loads to multiple computers.

Spinnaker - Global Continuous Delivery


Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence. It helps codify the process of safely and reliably deploying artifacts to the cloud. It can deploy across multiple cloud providers: AWS EC2, Google Compute Engine, Microsoft Azure, OpenStack and Cloud Foundry.

pybuilder - Continuous build tool for Python.


PyBuilder is a software build tool written in 100% pure Python, mainly targeting Python applications. PyBuilder is based on the concept of dependency based programming, but it also comes with a powerful plugin mechanism, allowing the construction of build life cycles similar to those known from other famous (Java) build tools.

psake - A build automation tool... now with less XML...


psake is a build automation tool written in PowerShell. It avoids the angle-bracket tax associated with executable XML by leveraging the PowerShell syntax in your build scripts. psake has a syntax inspired by rake (aka make in Ruby) and bake (aka make in Boo), but is easier to script because it leverages your existing command-line knowledge.psake is pronounced sake – as in Japanese rice wine. It does NOT rhyme with make, bake, or rake.