Skip to content

jwaldrop107/CMaize

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt text

Documentation link

We believe that the development of build systems should follow the same software engineering best practices as traditional source code. One such best practice is the DRY ("Don't Repeat Yourself") principle. Most build systems written in CMake are extremely verbose and boilerplate heavy. CMaize was developed to facilitate writing CMake build systems which adhere to the DRY principle.

Features

  • Minimize boilerplate. CMake is verbose, CMaize isn't.
  • Pure CMake. CMaize is written using the CMake programming language which means you have access to every feature CMake provides in addition to those provided by CMaize itself.
  • Automatically keep up with CMake's ever changing best practices. CMaize provides a stable API and maintains the mapping from that API to CMake's current best practices.
  • Seamlessly integrate targets that rely on languages not supported by CMake. Currently limited to Python, but can be extended.

Install

If you are using CMaize as part of your project's build system it is recommended that you set up your build system to automatically fetch CMaize. See here for more details.

Contributing

Acknowledgments

This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration.

Additional funding has come for Iowa State University through the College of Liberal Arts & Sciences Dean’s Professor Chair.

About

Simplifies writing CMake-based build systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CMake 92.9%
  • Shell 6.2%
  • C++ 0.9%