Core algorithms for operators and graph of the AIDGE framework
Project description
Aidge Core library
You can find here the C++ code of the Core library of Aidge.
[TOC]
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 "".AIDGE_BUILD_TEST
: to build the C++ unit tests. Set to "ON" or "OFF". Default to "OFF".
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_BUILD_TEST=ON # enable C++ unit tests
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 -U pip 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 -U 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 |
-DTEST | bool |
If ON build C++ unit tests, default=ON |
-DPYBIND | bool |
If ON activate python binding, default=OFF |
-DPYBIND_INSTALL_PREFIX:PATH | str |
Path to the python module install folder when -DPYBIND=ON , defaults to $CMAKE_INSTALL_PREFIX/python_packages/<module> |
If one compiles with -DPYBIND=ON
, -DPYBIND_INSTALL_PREFIX:PATH
can be used to install the python module directly in the
python sources tree (for instance $PWD/aidge_core
). setup.py
takes care of this and installs the module at the right place.
Run tests
CPP
Inside of the build file run:
ctest --output-on-failure
Python
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file aidge_core-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: aidge_core-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd22e7d4a4b4afd606f9335fc31d3ed50e2173b9ce64b82a4319c960e5548bd4 |
|
MD5 | 8a524dcde87e311cd53e2292f862e806 |
|
BLAKE2b-256 | a5da60bb55d05fec961e4f6b99ebdc6e1e1f9bca5412b7555d78deb7c3bd79e1 |
File details
Details for the file aidge_core-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: aidge_core-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1669132bfe1f378beb2f02b10791ae05cad0285a151b28f5864705960aa212b2 |
|
MD5 | bf6b366daab92c435832df8cfec97672 |
|
BLAKE2b-256 | 63d2583e4db31feb4fedc3be0c3184cebd2dd1cbb0a3be5a424707dea84a3a33 |
File details
Details for the file aidge_core-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: aidge_core-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8b098ba065bf96bbcd130da304ef1bb089e7d0a8ec085e8611c8d2a5b28508a |
|
MD5 | 6e77bf8a8f57a7544bdd851b638faba5 |
|
BLAKE2b-256 | 228ca0bcdda736267c2dd6ccaf8a0699bbb3a6053e3caa399af65d97fe746695 |