This repository contains many of the CMake settings, macros, and functions used for the GEOSgcm and other GEOS-ESM projects.
The main directory contains two files: esma.cmake and esma_cpack.cmake.
The esma.cmake file is the "omnibus" script which loads most of the other functions and macros used by GEOS-ESM. A good portion of
it sources other .cmake files contained in the subdirectories listed below via
use of appending to CMAKE_MODULE_PATH.
The esma_cpack.cmake file controls the use of CPack within GEOS-ESM. Due to interactions between GEOS-ESM's cmake and ecbuild's,
this file must be included separately
The rest of the GEOS-ESM CMake configuration files are contained in subdirectories:
-
esma_supportMacros and functions used to simplify and extend CMake or ecbuild (see below) capabilities. This includes things like
esma_add_library()and otheresma_macros that might be encountered in GEOS-ESM CMake. -
compilerFiles related to different compiler options as well as some CMake-time checks for compiler support.
-
operating_systemFiles related to OS-specific configurations
-
pythonFiles related to the detection and use of Python during the build process. For GEOS-ESM projects, this nearly always means
f2py. -
latexFiles related to LaTeX processing.
-
external_librariesFiles that control the detection and use of external libraries and other dependencies. This includes things like Baselibs (netCDF, ESMF, etc.), math libraries (MKL, BLAS, LAPACK), as well as Git.
-
ecbuildThere is a final "hidden" subdirectory that ESMA_cmake expects. This is a checkout of ecbuild which is an underlying framework for most of ESMA_cmake. This is brought in as a subdirectory via
mepofromcomponents.yamlfiles in fixtures.
Please check out our contributing guidelines.
All files are currently licensed under the Apache-2.0 license, see LICENSE.
Previously, the code was licensed under the NASA Open Source Agreement, Version 1.3.