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

61 lines
1.7 KiB
Markdown

# 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``.