Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

The CMake tool is used to build ECMWF software. The build process takes place in two stages. First, CMake will run some tests on the system and find out if the required software libraries and headers are available. It uses this information to create native build tools (e.g. Makefiles) for the current platform. Then, the actual build can take place, for example by typing 'make'.

Prerequisite

To install any ECMWF software package, CMake needs to be installed on your system. On most systems it will be already installed or this can be done through the standard package manager to install software. For further information to install CMake see

http://www.cmake.org/cmake/help/install.html

Directories

During a build with CMake there are three different directories involved: The source dir, the build dir and the install dir.

...

Of these, the source and build directories can be anywhere on the system. The installation directory is usually left at its default, which is /usr/local. Installing software here ensures that it is automatically available to users. It is possible to specify a different installation directory by adding -DCMAKE_INSTALL_PREFIX=/path/to/install/dir to the CMake command line.

Quick Build Example

Here is an example set of commands to set up and build a software package using default settings. More detail for a customised build is given below.

...

Code Block
languagebash
make install

General CMake options

Various options can be passed to the CMake command. The following table gives an overview of some of the general options that can be passed. Options are passed to the cmake command by prefixing them with -D, for example -DCMAKE_INSTALL_PREFIX=/path/to/dir.

...

The C, C++ and Fortran compilers are chosen by CMake. This can be overwritten by setting the environment variables CC, CXX and F77, before the call to cmake, to set the preferred compiler. 

Finding support libraries

If any support libraries are installed in non-default locations, CMake can be instructed where to find them by one of the following methods. First, the option CMAKE_PREFIX_PATH can be set to a colon-separated list of base directories where the libraries are installed, for example -DCMAKE_PREFIX_PATH=/path/where/my/sw/is/installed. CMake will check these directories for any package it requires. This method is therefore useful if many support libraries are installed into the same location.

...