Skip to content
Snippets Groups Projects
Olivier BICHLER's avatar
Olivier BICHLER authored
d02fe9c2
History

Pipeline status C++ coverage Python coverage

Aidge Core library

You can find here the C++ code of the Core library of Aidge.

Pip installation

To install aidge_core using pip, run the following command in your python environnement :

pip install . -v

TIPS : Use environment variables to change compilation options:

  • AIDGE_INSTALL : to set the installation folder. Defaults to <python_prefix>/lib/libAidge
  • AIDGE_PYTHON_BUILD_TYPE : to set the compilation mode to Debug or Release or "" (for default flags). Defaults to Release.
  • AIDGE_BUILD_GEN : to set the build backend (for development mode) or "" for the cmake default. Default to "".

Pip installation for development

To setup aidge_core using pip in development (or editable mode), use the --no-build-isolation -e options to pip.

For instance run the following command in your python environnement for a typical setup :

export AIDGE_PYTHON_BUILD_TYPE=         # default flags (no debug info but fastest build time)
export AIDGE_PYTHON_BUILD_TYPE=Debug    # or if one really need to debug the C++ code
pip install setuptools setuptools_scm[toml] cmake   # Pre-install build requirements (refer to the pyproject.toml [build-system] section)
pip install -v --no-build-isolation -e .

In this configuration python files can be modified directly without re-installation.

The C++ build dir will be created in build/ and recompilation and install of python bindings can be done directly with:

make -C build install -j $(nproc)
# or with cmake
cmake --build build -j $(nproc) && cmake --install build

One can also use an alternate cmake build backend such as ninja which can be installed easily though pip, for instance :

pip install ninja
export AIDGE_BUILD_GEN=Ninja
pip install -v --no-build-isolation -e .

In this case ninja is used instead of make as build backend, and recompilation when needed is done with:

ninja -C build install  # note that by default ninja use available parallelism, no need for -j option
# or with cmake
cmake --build build && cmake --install build

Note that python development (or editable mode) is not always robust to changes in the python package setup, or when changing the build backend with AIDGE_BUILD_GEN. In order to re-install when the build breaks, re-execute the commands:

rm -rf *-egg-info build/
pip install -v --no-build-isolation -e .

Standard C++ Compilation

Create two directories build and ìnstall.

Then inside build :


cmake -DCMAKE_INSTALL_PREFIX:PATH=$(path_to_install_folder) $(CMAKE PARAMETERS) $(projet_root)

make all install

Compilation options

Option Value type Description
-DCMAKE_INSTALL_PREFIX:PATH str Path to the install folder
-DCMAKE_BUILD_TYPE str If Debug, compile in debug mode, Release compile with highest optimisations or "" (empty) , default= Release
-DWERROR bool If ON show warning as error during compilation phase, default=OFF
-DPYBIND bool If ON activate python binding, default=ON

If you have compiled with PyBind you can find at the root of the build file the python lib aidge_core.cpython*.so

Run tests

CPP

Inside of the build file run:

ctest --output-on-failure

Python