/ecbuild

A CMake-based build system, consisting of a collection of CMake macros and functions that ease the managing of software build systems

Primary LanguageCMakeApache License 2.0Apache-2.0

ecbuild - ECMWF build system

ecBuild is built on top of CMake and consists of a set of macros as well as a wrapper around CMake. Calling:

ecbuild $SRC_DIR

is equivalent to:

cmake -DCMAKE_MODULE_PATH=$ECBUILD_DIR/cmake $SRC_DIR

Prior knowledge of CMake is assumed. For a tutorial, see e.g. https://cmake.org/cmake/help/latest/guide/tutorial/index.html

Quick start

ecBuild does not need to be compiled, and can be used directly from the source repository. If you want to install it, please refer to the INSTALL.rst file.

  1. Retrieve the source code:

    git clone https://github.com/ecmwf/ecbuild

  2. Add ecbuild to your PATH:

    export PATH=$PWD/ecbuild/bin:$PATH

Examples

The examples/ directory contains some sample projects that show how ecBuild can be used in various situations. For a quick introduction on how to write an ecBuild project, have a look at examples/simple/CMakeLists.txt.

Building a project

Just like CMake, ecBuild uses out-of-source builds. We will assume that your project sources are in $SRC_DIR (e.g. examples/simple), and that your build directory is $BUILD_DIR (e.g. $SRC_DIR/build):

mkdir -p $BUILD_DIR
cd $BUILD_DIR
ecbuild $SRC_DIR    # see `ecbuild --help`, you may pass CMake options as well
make                # add your favourite options, e.g. -j