...
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.
cmake optionsCMake Option | docDescription | defaultDefault |
---|---|---|
CMAKE_INSTALL_PREFIX | where to install the software | /usr/local |
CMAKE_BUILD_TYPE | to select the type of compilation:
| 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.
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.
Second, package-specific path options can be set, such as in the following list for ECMWF software:
Path options - only required when support libraries are not installed in default locations | ||
CMake Option | Description | Notes |
---|---|---|
GRIB_API_PATH | path to where GRIB_API has been installed | |
MAGICS_PATH | path to where Magics has been installed | |
NETCDF_PATH | path to where netCDF has been installed | |
ODB_API_PATH | path to where ODB_API has been installed | |
ODB_PATH | path to where the original (IFS) ODB has been installed | |
EMOS_PATH | path to where Emoslib has been installed | Also set EMOS_LIB_NAME |
FDB_PATH | path to where fdb has been installed | |
PROJ4_PATH | path to where proj4 has been installed |
Package dependent options for CMake
ECMWF software packages share some options. The user should specify ON or OFF. If the user does not specify the option, and the default is AUTO, then CMake should try to enable it if possible, otherwise the feature is turned off. If the user explicitly specifies ON, an the feature cannot be enabled because some libraries are missing, the CMake will fail. CMake will report which options are ON and which are OFF. Please note that only features are enabled with flags, therefore, there should not be a ENABLEENABLE_BOOST flag.
Here is the list of available options:
Name | Default | eckit | grib_api | odb_api | magics | ... | Comment |
---|---|---|---|---|---|---|---|
ENABLE_NETCDF | AUTO | ✓ | ✓ | ||||
ENABLE_HDF | AUTO | ✓ | |||||
ENABLE_JPG | AUTO | ✓ | Enable JPEG2000 support. This option should look for Jasper or OpenJPG. | ||||
ENABLE_PNG | AUTO | ✓ | Enable PNG support | ||||
ENABLE_PYTHON | AUTO | ✓ | ✓ | ✓ | Offers the Python interface to the package. | ||
ENABLE_FORTRAN | AUTO | ✓ | ✓ | ✓ | Offers the Fortran interface to the package. | ||
ENABLE_METVIEW | OFF | ✓ | This one should go. | ||||
ENABLE_CAIRO | AUTO | ✓ | This should be rename ENABLE_RASTER or something like that. | ||||
ENABLE_GRIB | AUTO | ✓ | ✓ | ||||
ENABLE_BUFR | AUTO | ✓ |
Path options - only required when support libraries are not installed in default locations | |||
CMake Option | Description | Notes | |
---|---|---|---|
GRIB_API_PATH | path to where GRIB_API has been installed | ||
MAGICS_PATH | path to where Magics has been installed | ||
NETCDF_PATH | path to where netCDF has been installed | ||
ODB_API_PATH | path to where ODB_API has been installed | ||
ODB_PATH | path to where the original (IFS) ODB has been installed | ||
EMOS_PATH | path to where Emoslib has been installed | Also set EMOS_LIB_NAME | |
FDB_PATH | path to where fdb has been installed | ||
PROJ4_PATH | path to where proj4 has been installed