Skip to end of metadata
Go to start of metadata


The Metview source bundle is a single package containing the source code for MetviewMagicsecCodes and ODB API. It allows for a simpler way to build and install Metview and the ECMWF software on which it depends. Instead of downloading, configuring, building, testing and installing each package separately, the bundle allows these steps to be performed for just one software package - the bundle itself. Building the bundle triggers the building of each of the component packages automatically, and they will 'see' each other, so for example Metview will be linked with the ecCodes which is part of the bundle, with no need to point it to an already-installed version.

Please follow the general CMake instructions below, and refer to the installation instructions of the individual packages for the tables of available CMake options for each. Options given to CMake will be passed to every component package of the bundle. Certain of these are set by default, for example Magics will be built with Metview and BUFR support enabled.

Note that the bundle has two additional CMake options:

CMake OptionDescriptionDefault
ENABLE_EXPOSE_SUBPACKAGESConfigures the sub-packages to be installed into the same directory level as Metview. If set to OFF, they will
be installed into a sub-directory; this option could be useful in order to avoid clashing with pre-existing
installations of, for example, GRIB_API.
Please note: GRIB_API is no longer included in the bundle since the 2018.02.0 bundle release
Set this to OFF to build the bundle with the supplied GRIB_API instead of with the supplied ecCodes.ON
ENABLE_ODBSet this to ON to enable recognition and processing of ODB data with ODCOFF


Release 2019.05.0ContainsVersionChange log


(Note: this release contains a selection
of fixes on top of the 2019.02.0 release,
but no new features)

ecCodes2.12.5Latest news
Emoslib4.6.1Versions 4.6.x / 00046x Updates
ODB API0.18.1Change history
Magics4.0.3Latest News - archive
Metview5.5.3Version 5.5 Updates

DownloadContainsVersionChange log
GRIB_API1.18.0GRIB API version 1.18.0 released
ecCodes0.16.1Not released externally
Emoslib4.4.4Versions 4.4.x / 00044x Updates
Magics2.29.6Latest News - archive
Metview4.7.1Version 4.7 Updates
MetviewBundle-2016.07.0-Source.tar.gzGRIB_API1.16.0GRIB API version 1.16.0 released
ecCodes0.16.0ecCodes version 0.16.0 released
Emoslib4.4.2History of EMOSLIB changes
Magics2.29.3Latest News
Metview4.7.0Version 4.7 Updates
MetviewBundle-2016.06.0-Source.tar.gzGRIB_API1.16.0GRIB API version 1.16.0 released
ecCodes0.16.0ecCodes version 0.16.0 released
Emoslib4.4.2History of EMOSLIB changes
Magics2.29.2Latest News
Metview4.6.7Version 4.6 Updates
MetviewBundle-2016.05.0-Source.tar.gzGRIB_API1.15.0GRIB API version 1.15.0 released
Emoslib4.4.1History of EMOSLIB changes
Magics2.29.0Latest News
Metview4.6.6Version 4.6 Updates
MetviewBundle-2016.03.0-Source.tar.gzGRIB_API1.14.6GRIB API version 1.14.6 released
Emoslib4.3.9Versions 000395 and Earlier
Magics2.28.0Latest News
Metview4.6.5Version 4.6 Updates
MetviewBundle-2016.01.0-Source.tar.gzGRIB_API1.14.5GRIB API version 1.14.5 released
Emoslib4.3.7Versions 000395 and Earlier
Magics2.26.1Latest News
Metview4.6.1Version 4.6 Updates
MetviewBundle-2015.12.0-Source.tar.gzGRIB_API1.14.4GRIB API version 1.14.4 released
Emoslib4.3.3Versions 000395 and Earlier
Magics2.26.1Latest News
Metview4.6.1Version 4.6 Updates
MetviewBundle-2015.11.0-Source.tar.gzGRIB_API1.14.3GRIB API version 1.14.3 released
Emoslib4.2.1History of EMOSLIB changes
Magics2.26.0Latest News
Metview4.6.0Version 4.6 Updates

CMake installation instructions

The CMake build system is used to build ECMWF software. The build process comprises two stages:

  1. CMake runs some tests on the system and finds out if required software libraries and headers are available. It uses this information to create native build tools (e.g. Makefiles) for the current platform.
  2. The actual build can take place, for example by typing 'make'.


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


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

SourceContains the software's source code. This is where a source tarball should be extracted to./tmp/src/sw-package
BuildConfiguration and compiler outputs are generated here, including libraries and executables./tmp/build/sw-package
InstallWhere the software will actually be used from. Installation to this directory is the final stage./usr/local

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.

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.

# unpack the source tarball into a temporary directory
mkdir -p /tmp/src
cd /tmp/src
tar xzvf software-version-Source.tar.gz

# configure and build in a separate directory
mkdir -p /tmp/build
cd /tmp/build
cmake /tmp/src/software-version-Source

On a machine with multiple cores, compilation will be faster by specifying the number of cores to be used simultaneously for the build, for example:

make -j8

If the make command fails, you can get more output by typing:

make VERBOSE=1

The software distribution will include a small set of tests which can help ensure that the build was successful. To start the tests, type:


As before if you have multiple cores, you can run the tests in parallel by:

ctest -j8

Some projects might not be set up to run tests in parallel. If you experience test failures, run the tests sequentially.

If the tests are successful, you can install the software:

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 used. Options are passed to the cmake command by prefixing them with -D, for example -DCMAKE_INSTALL_PREFIX=/path/to/dir.

CMake Option
where to install the software/usr/local

to select the type of compilation:

  • Debug
  • RelWithDebInfo
  • Release
  • Production
(release with debug info)
 Additional flags to pass to the C++ compiler 
Additional flags to pass to the C compiler 
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. 

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.


Debugging configure failures

If CMake fails to configure your project, run with debug logging first:

cmake -DECBUILD_LOG_LEVEL=DEBUG [...] /path/to/source

This will output lots of diagnostic information (in blue) on discovery of dependencies and much more.

Requirements to build the Metview bundle

The following table lists the dependencies that the bundle requires to be built from source. Please note that when you install these packages you also might have to install the respective "-devel" packages.


Third party libraries

if Metview's user interface is required (version 4.6.2 or later of Qt is needed).

Note that on some systems it is also necessary to install the libQtWebKit-devel development package (it may have different names on different systems)

ImageMagick Metview's user interface is required
netcdf 4

Please note: You also need to install the legacy C++ interface and HDF5

cairo png/pdf support needed
pango png/pdf support needed
  • No labels


  1. Can we remove EMOSLIB from the first paragraph :-)

    1. Quite right Pedro! We don't distribute emoslib with the bundle anymore!