arrow
Return

CMaize: Simplifying inter-package modularity from the build up

delete2024-03-06
delete0
delete
OA
AI
Z
Zachery Crandall
T
Theresa L. Windus
R
Ryan M. Richard *
DOI:10.1063/5.0196384delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
There is a growing desire for inter-package modularity within the chemistry software community to reuse encapsulated code units across a variety of software packages. Most comprehensive efforts at achieving inter-package modularity will quickly run afoul of a very practical problem, being able to cohesively build the modules. Writing and maintaining build systems has long been an issue for many scientific software packages that rely on compiled languages such as C/C++. The push for inter-package modularity compounds this issue by additionally requiring binary artifacts from disparate developers to interoperate at a binary level. Thankfully, the de facto build tool for C/C++, CMake, is more than capable of supporting the myriad of edge cases that complicate writing robust build systems. Unfortunately, writing and maintaining a robust CMake build system can be a laborious endeavor because CMake provides few abstractions to aid the developer. The need to significantly simplify the process of writing robust CMake-based build systems, especially in inter-package builds, motivated us to write CMaize. In addition to describing the architecture and design of CMaize, the article also demonstrates how CMaize is used in production-level software.
Keywords:
DENSITY-FUNCTIONAL THEORY

Journal

Journal of Chemical Physics cover
Journal of Chemical Physics
IF:
3.1
Papers:
7.2W
Citations:
23.2W

Organization

U
united states department of energy (doe)
Scholars:
11.3W
Papers: 9.6W
Citations: 246