This commit is contained in:
Radovan Bast 2015-07-31 12:35:54 +02:00
parent c382c9044c
commit c669bd10e1
2 changed files with 62 additions and 5 deletions

View File

@ -53,10 +53,10 @@ The only section where the name matters is ``[project]``::
[project]
name: numgrid
This is where we define the project name (here "numgrid"). Every project needs
at least this section and this section has to be called "project".
This is where we define the project name (here "numgrid"). This section has to
be there and it has to be called "project" (but it does not have to be on top).
The names of the other sections do not matter to Autocmake. You can name them like this::
The names of the other sections do not matter to Autocmake. You could name them like this::
[project]
name: numgrid
@ -70,12 +70,69 @@ The names of the other sections do not matter to Autocmake. You can name them li
[whatever]
source: https://github.com/scisoft/autocmake/raw/master/modules/cxx.cmake
But it is much better to choose names that are meaningful to you.
But it would not make much sense. It is better to choose names that are
meaningful to you.
The order of the sections does matter and the sections will be processed in the
exact order as you specify them in ``autocmake.cfg``.
Minimal example
---------------
As a minimal example we take an ``autocmake.cfg`` which only contains::
[project]
name: minime
First we make sure that the ``update.py`` script is up-to-date and that it has access
to all libraries it needs::
$ python update.py --self
Good. Now we can generate ``CMakeLists.txt`` and ``setup.py``::
$ python update ..
Here is the generated ``CMakeLists.txt``::
# set minimum cmake version
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
# project name
project(minime)
# do not rebuild if rules (compiler flags) change
set(CMAKE_SKIP_RULE_DEPENDENCY TRUE)
# if CMAKE_BUILD_TYPE undefined, we set it to Debug
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug")
endif()
This is the very minimum. Every project will have at least these settings.
And we also got a ``setup.py`` script with the following default options::
$ python setup.py -h
Usage:
./setup.py [options] [<builddir>]
./setup.py (-h | --help)
Options:
--type=<TYPE> Set the CMake build type (debug, release, or relwithdeb) [default: release].
--generator=<STRING> Set the CMake build system generator [default: Unix Makefiles].
--show Show CMake command and exit.
--cmake-options=<OPTIONS> Define options to CMake [default: None].
<builddir> Build directory.
-h --help Show this screen.
That's not too bad although currently we cannot do much with this since there
are no sources listed, no targets, no nothing. We need to flesh out
``CMakeLists.txt`` and this is what we will do in the next section.
Assembling CMake plugins
------------------------

View File

@ -1,6 +1,6 @@
Example hello world project
Example Hello World project
===========================
Write me ...