autocmake/README.md
2015-05-22 14:14:15 +02:00

1.7 KiB

Autocmake

A CMake plugin composer.

Bootstrapping a new project

Bootstrap a CFrame 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
├── cframe.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 cframe.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 cframe.cfg to a directory called modules/:

cmake/
├── bootstrap.py
├── cframe.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 cframe.cfg.