Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Several minor improvements

CMake installation instructions

The CMake tool build system is used to build ECMWF software. The build process takes place in comprises two stages. First, CMake will run :

  1. CMake runs some tests on the system and

...

  1. finds out if

...

  1. required software libraries and headers are available. It uses this information to create native build tools (e.g. Makefiles) for the current platform.

...

  1. 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

...

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.

Note

ECMWF software does not support in-source builds. Therefore the build directory cannot be (a subdirectory of) the source directory.

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.

...

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

 

CMake Option
Description
Default
CMAKE_INSTALL_PREFIX
where to install the software /usr/local
CMAKE_BUILD_TYPE

to select the type of compilation:

  • Debug
  • RelWithDebInfo
  • Release
  • Production
RelWithDebInfo
(release with debug info)
CMAKE_CXX_FLAGS
 Additional flags to pass to the C++ compiler 
CMAKE_C_FLAGS
Additional flags to pass to the C compiler 
CMAKE_Fortran_FLAGS
Additional flags to pass to the Fortran compiler 

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. Further the variable CMAKE_CXX_FLAGS can be used to set compiler flags for optimisation or debugging. For example, using CMAKE_CXX_FLAGS="-O2 -mtune=native" sets options for better optimisation. 

...