Skip to main content

Buck

Geoffrey Hunter
mbedded.ninja Author

Installation

Ubuntu

This was tested on Ubuntu 16.04.

Install aptitude managed dependencies:

$ sudo apt install -y ant openjdk-8-jdk python2.7

Install Watchman:

$ git clone https://github.com/facebook/watchman.git
$ cd watchman/
$ sudo apt-get install -y autoconf automake build-essential python-dev
$ ./autogen.sh
$ ./configure
$ sudo make install

Clone/build/install Buck:

$ git clone https://github.com/facebook/buck.git
$ cd buck
$ ant
$ .\bin\buck build --show-output buck
note

As of Buck v2018.02.16.01, python 2.7 is required. If you try a build will python v3.x, you will get the following error when running the ant command:

gen-buck-info:
...
[exec] TypeError: Object of type 'bytes' is not JSON serializable

If the above command completes successfully, you will have the buck executable located at ./bin/buck. This build system does not install it into system folders on your machine, so you will probably want to add ./bin/buck to your path so you can just type buck at the command line.

Basic Example

The most basic Buck-based project example requires two Buck specific files: .buckconfig and a BUCK file.

Example Project

An example C++ project built using Buck can be found on GitHub at https://github.com/njlr/buck-cpp-example.