Speaker
Description
The earth system modelling framework MESSy (Modular Earth Submodel System: https://messy-interface.org/) consists of around 3.5 Mio. lines of pure code, most of it written in Fortran, and is mainly used on large HPC clusters. Here, users as well as developers usually have to configure and build the software package on their own with the help of a build system which is an essential part of research software. MESSy has been developed for 20 years and offers a lot of different configuration options and packages. All those configurations need to be represented within the internal build system. The long grown currently used version based on autoconf is rather complex and elaborately to maintain, e.g. when it should be extended to new computation architectures.
As part of a supporting project, we therefore created a new and modern build system for this software within the past year. The main focus was to recreate the existing system and its functionalities with CMake, one of the most common tools, while improving the flexibility, developers’ usability and integrability to various architectures. Moreover, the recompilation time shrinks when the code is changed which simplifies development. Right now, the new CMake system is used more and more by MESSy’s developers in contrast to the autoconf build.
In the following, we will describe the process of creating such a CMake system for large grown software based on our experience with MESSy. Further, advantages in general and hurdles related to this specific example will be discussed.