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