autocmake/README.md
Radovan Bast d0c5daf0ae add badge
2015-05-23 11:29:19 +02:00

1.9 KiB

Build Status

Autocmake

A CMake plugin composer.

Projects using Autocmake

Bootstrapping a new project

Bootstrap a Autocmake infrastructure out of "nothing":

mkdir cmake  # does not have to be called "cmake" - take the name you prefer
cd cmake
wget https://github.com/scisoft/autocmake/raw/master/bootstrap.py
python bootstrap.py --init

This downloads and creates the following files:

cmake/
├── bootstrap.py   # no need to edit
├── autocmake.cfg  # edit this file
└── lib/
    ├── config.py  # no need to edit
    └── docopt.py  # no need to edit

If you use version control, then now is a good moment to status/diff/add the newly created files.

Creating the CMake infrastructure

Then edit autocmake.cfg and run the bootstrap.py script which creates CMakeLists.txt and setup.py in the path specified (here ".."):

python bootstrap.py ..

The script also copies or downloads CMake modules specified in autocmake.cfg to a directory called modules/:

cmake/
├── bootstrap.py
├── autocmake.cfg
└── lib/
    ├── config.py
    └── docopt.py
    └── modules/   # CMakeLists.txt includes CMake modules from this directory

Now you have CMakeLists.txt and setup.py in the project root and you can build the project:

cd ..
python setup.py [-h]
cd build
make

Customizing the CMake modules

The CMake modules can be customized directly inside modules/ but this is not very convenient as the customizations may be overwritten by the boostrap.py script.

A better solution is to download the CMake modules that you wish you customize to a separate directory and source the customized CMake modules in autocmake.cfg.