Reusable build automation in the spirit of the world’s second most successful plumber.
This project provides 100% reusable cmake
scaffolding that can be used for
nested/flat C/C++ projects (even mixing the two), and provides resuable build
“plumbing” that can be transferred without modification between projects. I
created this project because:
No existing C/C++/CUDA build system supported automatic file discovery like
make
via globs.No existing C/C++/CUDA build system provided 100% reusability across projects (assuming some conventions for file naming, directory layout, etc.). I found myself frequently copying and pasting
CmakeLists.txt
(or whatever the tool’s configuration was) between projects, as I added and when I find a new flag I want to add, or a new static analysis checker, etc., I would have to go and add it to EVERY project.No existing C/C++/CUDA build systems supported doing things like running one or more static analyzers on a repository, formatting the repository, building and running tests, etc., using
make check
,make format
, ormake tests
, or other simple cmdline syntax.