update about doc
This commit is contained in:
parent
9eefdbd9f3
commit
a2eda46896
@ -4,49 +4,54 @@ About Autocmake
|
|||||||
===============
|
===============
|
||||||
|
|
||||||
You typically want to use CMake when you get tired of manually editing
|
You typically want to use CMake when you get tired of manually editing
|
||||||
Makefiles. Autocmake is for people who are tired of editing CMake files.
|
Makefiles. Autocmake is for people who are tired of editing CMake files
|
||||||
Autocmake assembles CMake modules, generates ``CMakeLists.txt`` as well as
|
directly. Autocmake assembles CMake modules, generates ``CMakeLists.txt`` as
|
||||||
``setup.py``, which serves as a front-end to ``CMakeLists.txt``. All this is
|
well as ``setup.py``, which serves as a front-end to ``CMakeLists.txt``. All
|
||||||
done based on a lightweight ``autocmake.cfg`` file::
|
this is done based on a lightweight ``autocmake.cfg`` file::
|
||||||
|
|
||||||
update.py --self
|
update.py --self
|
||||||
|
|
| |
|
||||||
| fetches Autocmake infrastructure
|
| fetches Autocmake |
|
||||||
v
|
| infrastructure |
|
||||||
autocmake.cfg
|
v Developer maintaining
|
||||||
|
|
autocmake.cfg Autocmake
|
||||||
| update.py
|
| |
|
||||||
v
|
| update.py |
|
||||||
|
| |
|
||||||
|
v v
|
||||||
CMakeLists.txt (and setup.py front-end)
|
CMakeLists.txt (and setup.py front-end)
|
||||||
|
|
| |
|
||||||
| setup.py (which invokes CMake)
|
| setup.py |
|
||||||
v
|
| which invokes CMake |
|
||||||
Makefile (or something else)
|
v User of the code
|
||||||
|
|
Makefile (or something else) |
|
||||||
| make
|
| |
|
||||||
v
|
| make |
|
||||||
|
| |
|
||||||
|
v v
|
||||||
Build/install/test targets
|
Build/install/test targets
|
||||||
|
|
||||||
|
|
||||||
Why Autocmake
|
Why Autocmake
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The main motivation for us to create Autocmake as a CMake framework library was
|
The main motivation for us to create Autocmake as a CMake framework library and
|
||||||
to simplify CMake code transfer between codes. We got tired of manually diffing
|
CMake module composer was to simplify CMake code transfer between codes. We got
|
||||||
and copy-pasting boiler-plate CMake code and watching it diverge while
|
tired of manually diffing and copy-pasting boiler-plate CMake code and watching
|
||||||
maintaining the CMake infrastructure in a growing number of scientific projects
|
it diverge while maintaining the CMake infrastructure in a growing number of
|
||||||
which typically have very similar requirements:
|
scientific projects which typically have very similar requirements:
|
||||||
|
|
||||||
- Fortran and/or C and/or C++ support
|
- Fortran and/or C and/or C++ support
|
||||||
- Compiler flags
|
- Tuning of compiler flags
|
||||||
- Front-end script (setup.py)
|
- Front-end script for the CMake-unaware user (setup.py)
|
||||||
- Support for parallelization: MPI, OMP, CUDA
|
- Support for parallelization: MPI, OMP, CUDA
|
||||||
- Math libraries (BLAS, LAPACK)
|
- Math libraries: BLAS, LAPACK
|
||||||
|
|
||||||
Our other motivation for Autocmake was to make it easier for developers who do
|
Our other motivation for Autocmake was to make it easier for developers who do
|
||||||
not know CMake to generate a CMake infrastructure within minutes.
|
not know CMake to generate a CMake infrastructure within minutes by providing
|
||||||
|
a higher-level entry point.
|
||||||
|
|
||||||
Autocmake is a chance to provide well documented and tested set of CMake
|
Autocmake is a chance to provide a well documented and tested set of CMake
|
||||||
plug-ins. With this we wish to give also users of codes the opportunity to
|
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.
|
introduce the occasional tweak without the need to read CMake documentation.
|
||||||
|
|
||||||
@ -61,6 +66,5 @@ possible and to minimize "hidden" actions in the background.
|
|||||||
Convention over configuration
|
Convention over configuration
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
Our guideline is to follow good established conventions
|
Our guideline is to follow good established conventions in order to allow users
|
||||||
to allow users and developers to recognize the configuration
|
and developers to recognize the configuration when moving to a new project.
|
||||||
when moving to a new project.
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user