Heron is currently available for Mac OS X 10.14, Ubuntu 14.04, and CentOS 7. This guide describes the basics of the Heron build system. For step-by-step build instructions for a specific platform, the following guides are available:
Heron can be built either in its entirety, as individual components.
Instructions on running unit tests for Heron can also be found in Testing Heron.
You must have the following installed to compile Heron:
Export the CC
and CXX
environment variables with a path specific to your machine:
$ export CC=/your-path-to/bin/c_compiler $ export CXX=/your-path-to/bin/c++_compiler $ echo $CC $CXX
Heron uses the Bazel build tool. Bazel releases can be found [here](https://github.com/bazelbuild/bazel/releases/tag/{{% bazelVersion %}}) and installation instructions can be found here.
To ensure that Bazel has been installed, run bazel version
and check the version (listed next to Build label
in the script's output) to ensure that you have Bazel {{% bazelVersion %}}.
There is a Python script that you can run to configure Bazel on supported platforms:
$ cd /path/to/heron $ ./bazel_configure.py
Bazel builds are specific to a given OS. When building you must specify an OS-specific configuration using the --config
flag. The following OS values are supported:
darwin
(Mac OS X)ubuntu
(Ubuntu 14.04)centos5
(CentOS 5)For example, on Mac OS X (darwin
), the following command will build all packages:
$ bazel build --config=darwin heron/...
Production release packages include additional performance optimizations not enabled by default. Enabling these optimizations increases build time. To enable production optimizations, include the opt
flag:
$ bazel build -c opt --config=PLATFORM heron/...
The Bazel build process can produce either executable install scripts or bundled tars. To build executables or tars for all Heron components at once, use the following bazel build
commands, respectively:
$ bazel build --config=PLATFORM scripts/packages:binpkgs $ bazel build --config=PLATFORM scripts/packages:tarpkgs
Resulting artifacts can be found in subdirectories below the bazel-bin
directory. The heron-tracker
executable, for example, can be found at bazel-bin/heron/tools/tracker/src/python/heron-tracker
.
As an alternative to building a full release, you can build Heron executables for a single Heron component (such as the Heron Tracker) by passing a target to the bazel build
command. For example, the following command would build the Heron Tracker:
$ bazel build --config=darwin heron/tools/tracker/src/python:heron-tracker
Instructions for running Heron unit tests can be found at Testing Heron.