[MOAB-dev] MOAB build system

Vijay S. Mahadevan vijay.m at gmail.com
Wed Nov 17 12:58:13 CST 2021


All,

Over the past several release cycles, we have continued to support
both autotools and CMake based build systems in MOAB. While each of
these workflows have their pros and cons, I think from a longer term
maintenance standpoint, we are planning to make a transition to use
just one of these workflows going forward (from the next major
release).  If you have preferences in using autotools vs CMake, now
would be a good time to voice your opinions.

Personally, I think the autotools build system is robust when it
works, but it is old and clunky since it has parts that are nearly 2
decades old. Additionally, the recent updates to autotools starting
from version 2.7.x generate a whole lot of warnings when creating the
configure file. Eventually, all platforms will upgrade to these newer
versions of autotools and it is not worth our effort in trying to
maintain autotools given its legacy. However, one advantage with this
workflow is that we recently added an option to auto-download and
install optional TPLs in a sandbox for configuration, making it easier
for users to get started.

For CMake, I may have some complaints about the quirkiness of the
build language but it has great documentation and works on all
platforms with a little tweaking (including Windows!). And we should
be able to get the auto-download feature working here as well with
either Superbuild type ideas or our own set of macros. While the
current CMake build system produces nearly equivalent installs as the
autotools workflow, there are still some kinks that need to be fixed.

In the end, both workflows will require some effort to clean up. And
given the better platform support and wider adoption of CMake for more
HPC codes, I am voting CMake for MOAB.

Thoughts, comments and other suggestions are welcome.

Best.
Vijay


More information about the moab-dev mailing list