The main objective of cmake-fullpython.cmake is to provide a frame to helps developers to adress software fragmentation problem in projects that require a cmake downstream python integration.
cmake-fullpython.cmake provides a python executable that belongs to the folowing diagram.
|-----------------------------------------|
| |
| upstream cmake project |
| |
|-----------------------------------------|
| |
| pybind11 python3 virtualenv |
| |
|-----------------------------------------|
| | ----------------------------------
| | | |
| | | |
| | [PYBIND11 .so CPP API] [cmakeHook.py] (upstram CMAKE variables)
| | | |
| | | |
| | | |
| cmake-fullpython.cmake | -------------------------------------------> [venv/bin/python]
| | | ../site-packages/pipPackages..
| | /...
|-----------------------------------------|
- Clone this repository:
git clone https://github.com/Dimitri1/cmake-fullpython
- Build examples locally
cd cmake-fullpython
# eg : build the example/aiMachine on xenial-latest
docker run -v $(pwd):/work hdgerin/cmake-fullpython:xenial-latest bash -c "mkdir -p /tmp/build /tmp/install && cd /tmp/build && cmake -DINSTALL=/tmp/install /work/examples/aiMachine/ && make && ctest -V"
- Configure system:
configure.sh
- Launch tests
docker run -it -v $PWD:/work hdgerin/cmake-fullpython:${DIST}-latest bash -c "mkdir /tmp/build /tmp/install && cd /tmp/build && cmake -DINSTALL=/tmp/install /work/examples/[exampleDir] && make && ctest -V"
- Dimitri Gerin dimitri.gerin@gmail.com