Autocmake
A CMake plugin composer.
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
.