update about doc
This commit is contained in:
		| @@ -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. |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user