61 lines
1.7 KiB
Markdown
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``.
|