Skip to content

Building Aeron

Dmytro Vyazelenko edited this page Sep 2, 2024 · 5 revisions

Java Build

Build the project with Gradle using this build.gradle file.

You will require the Java 17+ to build Aeron:

Full clean and build of all modules

    $ ./gradlew

C/C++ Build

You require the following to build the C++ API for Aeron:

  • C++11 supported compiler for the supported platform
  • C11 supported compiler for the supported platform
  • Requirements to build HdrHistogram_c.
  • JDK 17 or later to compile the SBE schema definitions used by the archive client and run the system tests.

Note: Aeron support is available for 64-bit Linux, OSX, and Windows.

For convenience, the cppbuild script does a full clean, build, and test of all targets as a Release build. By default the script will download a recent version of CMake to use for the build.

    $ ./cppbuild/cppbuild

For those comfortable with CMake and want to do a build manually (CMake 3.26 is required) - then a clean, build, and test looks like:

    $ mkdir -p cppbuild/Debug
    $ cd cppbuild/Debug
    $ cmake -DCMAKE_BUILD_TYPE=Debug ../..
    $ cmake --build . --clean-first
    $ ctest

C/C++ Build - Windows

In order to use the cppbuild script on Windows Aeron requires PowerShell. The Windows script is called cppbuild.ps1, which PowerShell should resolve if the command without the extension is run.

    PS> .\cppbuild\cppbuild

C Media Driver

By default, the C Media Driver is built as part of the C++ Build. However, it can be disabled via the CMake option BUILD_AERON_DRIVER being set to OFF.

Note: C Media Driver is supported on Mac and Linux, the Windows version is experimental.

For dependencies and other information, see the README.

Documentation

If you have doxygen installed and want to build the Doxygen doc, there is a nice doc target that can be used.

    $ make doc

Packaging

If you would like a packaged version of the compiled API, there is the package target that uses CPack. If the doc has been built previous to the packaging, it will be included. Packages created are "TGZ;STGZ", but can be changed by running cpack directly.

    $ make package

The Media Driver is packaged by the default build into an application that can be found here

aeron-driver/build/distributions/aeron-driver-${VERSION}.zip