autocmake/README.md
2015-05-30 19:33:04 +02:00

2.1 KiB

Build Status

Autocmake

A CMake plugin composer. Licensed under BSD-3.

Projects using Autocmake

Bootstrapping a new project

Download the bootstrap.py and execute it to fetch other infrastructure files which will be needed to build the project:

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 --update

This creates (or updates) the following files (an existing autocmake.cfg is not overwritten by the script):

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 build path:

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.