This commit is contained in:
Radovan Bast
2015-06-04 11:57:22 +02:00
parent d1baa79a05
commit b9fa44260f
7 changed files with 57 additions and 215 deletions

View File

@ -9,9 +9,13 @@ Autocmake assembles CMake modules, generates ``CMakeLists.txt`` as well as
``setup.py``, which serves as a front-end to ``CMakeLists.txt``. All this is
done based on a lightweight ``autocmake.cfg`` file::
bootstrap.py --update
|
| fetches Autocmake infrastructure
v
autocmake.cfg
|
| Autocmake
| bootstrap.py
v
CMakeLists.txt (and setup.py front-end)
|
@ -29,7 +33,7 @@ Why Autocmake
The main motivation for us to create Autocmake as a CMake framework library was
to simplify CMake code transfer between codes. We got tired of manually diffing
and and copy-pasting boiler-plate CMake code and watching it diverge while
and copy-pasting boiler-plate CMake code and watching it diverge while
maintaining the CMake infrastructure in a growing number of scientific projects
which typically have very similar requirements:
@ -43,11 +47,20 @@ Our other motivation for Autocmake was to make it easier for developers who do
not know CMake to generate a CMake infrastructure within minutes.
Autocmake is a chance to provide well documented and tested set of CMake
plug-ins. With this we want to give also users of codes which use Autocmake the
opportunity to introduce the occasional tweak without the need to read lengthy
manuals.
plug-ins. With this we wish to give also users of codes the opportunity to
introduce the occasional tweak without the need to read CMake documentation.
We try to follow two design principles:
- Explicit is better than implicit
- Convention over configuration
Explicit is better than implicit
--------------------------------
Our design principle is to let Autocmake do one thing, as explicitly as
possible and to minimize "hidden" actions in the background.
Convention over configuration
-----------------------------
Our guideline is to follow good established conventions
to allow users and developers to recognize the configuration
when moving to a new project.