From 598554193361d80bafa4bfd28be607de7440bb55 Mon Sep 17 00:00:00 2001
From: cmoineau <cyril.moineau@cea.fr>
Date: Tue, 1 Aug 2023 19:43:39 +0000
Subject: [PATCH] Update module to new CmakeLists.txt.

---
 CMakeLists.txt                                | 168 ++++++++++++++----
 OLD_CMakeLists.txt                            |  52 ++++++
 cmake/PybindModuleCreation.cmake              |  19 ++
 core-config.cmake.in                          |   3 +
 include/{ => aidge}/backend/OperatorImpl.hpp  |   2 +-
 include/{ => aidge}/backend/TensorImpl.hpp    |   2 +-
 include/{ => aidge}/data/Data.hpp             |   2 +-
 include/{ => aidge}/data/Tensor.hpp           |   8 +-
 include/{ => aidge}/graph/Connector.hpp       |   2 +-
 include/{ => aidge}/graph/GraphView.hpp       |   5 +-
 include/{ => aidge}/graph/Node.hpp            |   6 +-
 include/{ => aidge}/graph/OpArgs.hpp          |   0
 include/{ => aidge}/graphmatching/GRegex.hpp  |  10 +-
 include/{ => aidge}/graphmatching/Match.hpp   |   2 +-
 .../{ => aidge}/graphmatching/NodeRegex.hpp   |   2 +-
 include/{ => aidge}/graphmatching/SeqStm.hpp  |   4 +-
 .../{ => aidge}/graphmatching/StmFactory.hpp  |   6 +-
 include/{ => aidge}/graphmatching/Utile.hpp   |   2 +-
 include/{ => aidge}/operator/Add.hpp          |  10 +-
 include/{ => aidge}/operator/AvgPooling.hpp   |  14 +-
 include/{ => aidge}/operator/BatchNorm.hpp    |  14 +-
 include/{ => aidge}/operator/Conv.hpp         |  14 +-
 .../{ => aidge}/operator/ConvDepthWise.hpp    |  14 +-
 include/{ => aidge}/operator/FC.hpp           |  14 +-
 .../{ => aidge}/operator/GenericOperator.hpp  |  10 +-
 include/{ => aidge}/operator/LeakyReLU.hpp    |  16 +-
 include/{ => aidge}/operator/Matmul.hpp       |  14 +-
 include/{ => aidge}/operator/MetaOperator.hpp |   2 +-
 include/{ => aidge}/operator/Operator.hpp     |   8 +-
 include/{ => aidge}/operator/Producer.hpp     |  12 +-
 include/{ => aidge}/operator/ReLU.hpp         |  14 +-
 include/{ => aidge}/operator/Softmax.hpp      |  14 +-
 include/{ => aidge}/scheduler/Scheduler.hpp   |   0
 include/{ => aidge}/utils/CParameter.hpp      |   0
 include/{ => aidge}/utils/Parameter.hpp       |   0
 include/{ => aidge}/utils/Recipies.hpp        |   4 +-
 include/{ => aidge}/utils/Registrar.hpp       |   0
 include/{ => aidge}/utils/Types.h             |   0
 include/{ => aidge}/utilsParsing/AstNode.hpp  |   2 +-
 .../{ => aidge}/utilsParsing/ParsingToken.hpp |   0
 .../backend/pybind_OperatorImpl.cpp           |   2 +-
 python_binding/data/pybind_Data.cpp           |   2 +-
 python_binding/data/pybind_Tensor.cpp         |  10 +-
 python_binding/graph/pybind_Connector.cpp     |   6 +-
 python_binding/graph/pybind_GraphView.cpp     |   8 +-
 python_binding/graph/pybind_Node.cpp          |   6 +-
 python_binding/graph/pybind_OpArgs.cpp        |   6 +-
 .../graphmatching/pybind_GRegex.cpp           |   4 +-
 python_binding/graphmatching/pybind_Match.cpp |   2 +-
 .../graphmatching/pybind_NodeRegex.cpp        |   2 +-
 python_binding/operator/pybind_Add.cpp        |  10 +-
 python_binding/operator/pybind_AvgPooling.cpp |  12 +-
 python_binding/operator/pybind_BatchNorm.cpp  |   8 +-
 python_binding/operator/pybind_Conv.cpp       |  10 +-
 .../operator/pybind_ConvDepthWise.cpp         |  12 +-
 python_binding/operator/pybind_FC.cpp         |  10 +-
 .../operator/pybind_GenericOperator.cpp       |   6 +-
 python_binding/operator/pybind_LeakyReLU.cpp  |   6 +-
 python_binding/operator/pybind_Matmul.cpp     |  10 +-
 python_binding/operator/pybind_Operator.cpp   |   4 +-
 python_binding/operator/pybind_Producer.cpp   |  12 +-
 python_binding/operator/pybind_ReLU.cpp       |   4 +-
 python_binding/operator/pybind_Softmax.cpp    |   4 +-
 python_binding/recipies/pybind_Recipies.cpp   |   2 +-
 python_binding/scheduler/pybind_Scheduler.cpp |   4 +-
 python_binding/utils/pybind_Parameter.cpp     |   2 +-
 src/graph/Connector.cpp                       |   8 +-
 src/graph/GraphView.cpp                       |   6 +-
 src/graph/Node.cpp                            |   8 +-
 src/graph/OpArgs.cpp                          |   6 +-
 src/graphmatching/GRegex.cpp                  |   4 +-
 src/graphmatching/Match.cpp                   |   2 +-
 src/graphmatching/NodeRegex.cpp               |   2 +-
 src/graphmatching/SeqStm.cpp                  |   2 +-
 src/graphmatching/StmFactory.cpp              |   2 +-
 src/operator/Operator.cpp                     |   6 +-
 src/recipies/FuseMulAdd.cpp                   |  12 +-
 src/recipies/RemoveFlatten.cpp                |   6 +-
 src/scheduler/Scheduler.cpp                   |   8 +-
 {tests => unit_tests}/CMakeLists.txt          |   0
 .../graph/Test_Connector.cpp                  |  10 +-
 .../graph/Test_GraphView.cpp                  |  12 +-
 .../graphMatching/Test_GRegex.cpp             |  18 +-
 .../graphMatching/Test_NodeRegex.cpp          |   6 +-
 .../graphMatching/Test_SeqStm.cpp             |  10 +-
 .../graphMatching/Test_StmFactory.cpp         |  10 +-
 .../operator/Test_GenericOperator.cpp         |   4 +-
 87 files changed, 472 insertions(+), 305 deletions(-)
 create mode 100644 OLD_CMakeLists.txt
 create mode 100644 cmake/PybindModuleCreation.cmake
 create mode 100644 core-config.cmake.in
 rename include/{ => aidge}/backend/OperatorImpl.hpp (98%)
 rename include/{ => aidge}/backend/TensorImpl.hpp (97%)
 rename include/{ => aidge}/data/Data.hpp (98%)
 rename include/{ => aidge}/data/Tensor.hpp (99%)
 rename include/{ => aidge}/graph/Connector.hpp (98%)
 rename include/{ => aidge}/graph/GraphView.hpp (99%)
 rename include/{ => aidge}/graph/Node.hpp (99%)
 rename include/{ => aidge}/graph/OpArgs.hpp (100%)
 rename include/{ => aidge}/graphmatching/GRegex.hpp (89%)
 rename include/{ => aidge}/graphmatching/Match.hpp (95%)
 rename include/{ => aidge}/graphmatching/NodeRegex.hpp (96%)
 rename include/{ => aidge}/graphmatching/SeqStm.hpp (94%)
 rename include/{ => aidge}/graphmatching/StmFactory.hpp (90%)
 rename include/{ => aidge}/graphmatching/Utile.hpp (96%)
 rename include/{ => aidge}/operator/Add.hpp (96%)
 rename include/{ => aidge}/operator/AvgPooling.hpp (96%)
 rename include/{ => aidge}/operator/BatchNorm.hpp (96%)
 rename include/{ => aidge}/operator/Conv.hpp (97%)
 rename include/{ => aidge}/operator/ConvDepthWise.hpp (97%)
 rename include/{ => aidge}/operator/FC.hpp (95%)
 rename include/{ => aidge}/operator/GenericOperator.hpp (97%)
 rename include/{ => aidge}/operator/LeakyReLU.hpp (93%)
 rename include/{ => aidge}/operator/Matmul.hpp (95%)
 rename include/{ => aidge}/operator/MetaOperator.hpp (94%)
 rename include/{ => aidge}/operator/Operator.hpp (95%)
 rename include/{ => aidge}/operator/Producer.hpp (96%)
 rename include/{ => aidge}/operator/ReLU.hpp (93%)
 rename include/{ => aidge}/operator/Softmax.hpp (93%)
 rename include/{ => aidge}/scheduler/Scheduler.hpp (100%)
 rename include/{ => aidge}/utils/CParameter.hpp (100%)
 rename include/{ => aidge}/utils/Parameter.hpp (100%)
 rename include/{ => aidge}/utils/Recipies.hpp (90%)
 rename include/{ => aidge}/utils/Registrar.hpp (100%)
 rename include/{ => aidge}/utils/Types.h (100%)
 rename include/{ => aidge}/utilsParsing/AstNode.hpp (97%)
 rename include/{ => aidge}/utilsParsing/ParsingToken.hpp (100%)
 rename {tests => unit_tests}/CMakeLists.txt (100%)
 rename {tests => unit_tests}/graph/Test_Connector.cpp (98%)
 rename {tests => unit_tests}/graph/Test_GraphView.cpp (96%)
 rename {tests => unit_tests}/graphMatching/Test_GRegex.cpp (96%)
 rename {tests => unit_tests}/graphMatching/Test_NodeRegex.cpp (90%)
 rename {tests => unit_tests}/graphMatching/Test_SeqStm.cpp (95%)
 rename {tests => unit_tests}/graphMatching/Test_StmFactory.cpp (96%)
 rename {tests => unit_tests}/operator/Test_GenericOperator.cpp (97%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7cea83d97..223fbb39b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,52 +1,144 @@
+cmake_minimum_required(VERSION 3.11)
 
-if (BUILD_CORE_ALONE)
-    project(Aidge_Core)
-    cmake_minimum_required(VERSION 3.11)
-    add_compile_options(-Wall -Wextra -fPIC)
-endif()
-
-if (PYBIND)
-    add_definitions(-DPYBIND)
-    Include(FetchContent)
+set(project aidge)
+set(version 2.0.0)
+project(${project})
+enable_testing()
+# TODO : use a file to store module_name ?
+set(module_name aidge_core) # This will be python module name 
+set(component core) # Traget name must be different than pybind target
 
-    FetchContent_Declare(
-    PyBind11
-    GIT_REPOSITORY https://github.com/pybind/pybind11.git
-    GIT_TAG        v2.10.4 # or a later release
-    )
+##############################################
+# Import utils CMakeLists
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
+include(PybindModuleCreation)
 
-    FetchContent_MakeAvailable(PyBind11)
-    file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
-    pybind11_add_module(aidge_core MODULE ${pybind_src_files} "NO_EXTRAS")
-    target_include_directories(aidge_core PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
-    target_link_libraries(aidge_core PUBLIC core)
-    # generate_python_binding(aidge_core core)
-endif()
+##############################################
+# Define options
+option(PYBIND "python binding" ON)
+option(WERROR "Warning as error" OFF)
 
-add_library(core STATIC)
+##############################################
+# Find system dependencies
+generate_python_binding(aidge_${module_name}) # TODO : cannot be component because of target name
 
-# Add include directories 
-target_include_directories(core PUBLIC "include")
+##############################################
+# Create target and set properties
 
-# Containers module
 file(GLOB_RECURSE src_files "src/*.cpp")
-target_sources(core PRIVATE ${src_files})
+file(GLOB_RECURSE inc_files "include/*.hpp")
+
+add_library(${component} ${src_files} ${inc_files})
 
-set_property(TARGET core PROPERTY POSITION_INDEPENDENT_CODE ON)
+# namespaced alias
+add_library(${project}::${component} ALIAS ${component})
 
+#Set target properties
+set_property(TARGET ${component} PROPERTY POSITION_INDEPENDENT_CODE ON)
+target_include_directories(${component}
+    PUBLIC
+        $<INSTALL_INTERFACE:include>
+        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+    PRIVATE
+        ${CMAKE_CURRENT_SOURCE_DIR}/src
+)
 if (PYBIND)
-    target_include_directories(core PUBLIC $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>)
-    target_link_libraries(core PRIVATE ${PYTHON_LIBRARIES})
-endif()
+    message(STATUS "PYTHON INCLUDE DIR : ${PYTHON_INCLUDE_DIRS}")
+    message(STATUS "PYTHON PYTHON_LIBRARY : ${PYTHON_LIBRARIES}")
 
-if (NOT BUILD_CORE_ALONE)
-    # Activate compile time reducer for aidge_core
-    set_target_properties(core PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
-    # set_target_properties(n2d2_cpu_lib PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "include/utils/Precompiled.hpp")
-    cotire(core)
+    target_include_directories(${component}
+        PUBLIC
+            $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>
+    )
+    target_link_libraries(${component}
+        PRIVATE
+            ${PYTHON_LIBRARIES}
+    )
 endif()
+target_compile_features(${component} PRIVATE cxx_std_14)
+
+if(WERROR)
+target_compile_options(${component} PRIVATE
+$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
+-Wall -Wextra -Wold-style-cast -Winline -pedantic -Werror=narrowing -Wshadow -Werror>)
+target_compile_options(${component} PRIVATE
+$<$<CXX_COMPILER_ID:MSVC>:
+/W4>)
+else()
+    target_compile_options(${component} PRIVATE
+        $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
+        -Wall -Wextra -Wold-style-cast -Winline -pedantic -Werror=narrowing -Wshadow -Wpedantic>)
+        target_compile_options(${component} PRIVATE
+        $<$<CXX_COMPILER_ID:MSVC>:
+        /W4>)
+        endif()
+
+##############################################
+# Installation instructions
+
+include(GNUInstallDirs)
+set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${project})
+
+install(TARGETS ${component} EXPORT ${component}-targets
+  COMPONENT ${component}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+)
+
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+#Export the targets to a script
+install(EXPORT ${component}-targets
+  FILE "${project}-${component}-targets.cmake"
+  NAMESPACE ${project}::
+  DESTINATION ${INSTALL_CONFIGDIR}
+  COMPONENT ${component}
+)
+
+#Create a ConfigVersion.cmake file
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file(
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config-version.cmake"
+    VERSION ${version}
+    COMPATIBILITY AnyNewerVersion
+)
+
+configure_package_config_file("${component}-config.cmake.in"
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config.cmake"
+    INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
+)
+
+#Install the config, configversion and custom find modules
+install(FILES
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config.cmake"
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config-version.cmake"
+    DESTINATION ${INSTALL_CONFIGDIR}
+    COMPONENT ${component}
+)
+
+##############################################
+## Exporting from the build tree
+export(EXPORT ${component}-targets
+    FILE "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-targets.cmake"
+    NAMESPACE ${project}::)
+
+
+##############################################
+## Add test
+add_subdirectory(unit_tests)
+
+include(CMakePackageConfigHelpers)
+
+write_basic_package_version_file(
+  "${CMAKE_BINARY_DIR}/${project}-config-version.cmake"
+  VERSION ${version}
+  COMPATIBILITY AnyNewerVersion
+)
 
 
-if (TESTS)
-    add_subdirectory(tests)
-endif()
\ No newline at end of file
+# install(
+#   FILES
+#     "${CMAKE_BINARY_DIR}/${project}-config.cmake"
+#   DESTINATION lib/cmake/${project}
+# )
diff --git a/OLD_CMakeLists.txt b/OLD_CMakeLists.txt
new file mode 100644
index 000000000..7cea83d97
--- /dev/null
+++ b/OLD_CMakeLists.txt
@@ -0,0 +1,52 @@
+
+if (BUILD_CORE_ALONE)
+    project(Aidge_Core)
+    cmake_minimum_required(VERSION 3.11)
+    add_compile_options(-Wall -Wextra -fPIC)
+endif()
+
+if (PYBIND)
+    add_definitions(-DPYBIND)
+    Include(FetchContent)
+
+    FetchContent_Declare(
+    PyBind11
+    GIT_REPOSITORY https://github.com/pybind/pybind11.git
+    GIT_TAG        v2.10.4 # or a later release
+    )
+
+    FetchContent_MakeAvailable(PyBind11)
+    file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
+    pybind11_add_module(aidge_core MODULE ${pybind_src_files} "NO_EXTRAS")
+    target_include_directories(aidge_core PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
+    target_link_libraries(aidge_core PUBLIC core)
+    # generate_python_binding(aidge_core core)
+endif()
+
+add_library(core STATIC)
+
+# Add include directories 
+target_include_directories(core PUBLIC "include")
+
+# Containers module
+file(GLOB_RECURSE src_files "src/*.cpp")
+target_sources(core PRIVATE ${src_files})
+
+set_property(TARGET core PROPERTY POSITION_INDEPENDENT_CODE ON)
+
+if (PYBIND)
+    target_include_directories(core PUBLIC $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>)
+    target_link_libraries(core PRIVATE ${PYTHON_LIBRARIES})
+endif()
+
+if (NOT BUILD_CORE_ALONE)
+    # Activate compile time reducer for aidge_core
+    set_target_properties(core PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
+    # set_target_properties(n2d2_cpu_lib PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "include/utils/Precompiled.hpp")
+    cotire(core)
+endif()
+
+
+if (TESTS)
+    add_subdirectory(tests)
+endif()
\ No newline at end of file
diff --git a/cmake/PybindModuleCreation.cmake b/cmake/PybindModuleCreation.cmake
new file mode 100644
index 000000000..6ca1aeffe
--- /dev/null
+++ b/cmake/PybindModuleCreation.cmake
@@ -0,0 +1,19 @@
+function(generate_python_binding name) 
+    if (PYBIND)
+        add_definitions(-DPYBIND)
+        Include(FetchContent)
+
+        FetchContent_Declare(
+        PyBind11
+        GIT_REPOSITORY https://github.com/pybind/pybind11.git
+        GIT_TAG        v2.10.4 # or a later release
+        )
+
+        FetchContent_MakeAvailable(PyBind11)
+        message(STATUS "Creating binding for module ${name}")
+        file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
+        pybind11_add_module(${name} MODULE ${pybind_src_files})
+        target_include_directories(${name} PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
+        target_link_libraries(${name} PUBLIC ${component})
+    endif()
+endfunction()
diff --git a/core-config.cmake.in b/core-config.cmake.in
new file mode 100644
index 000000000..6cf0fac1e
--- /dev/null
+++ b/core-config.cmake.in
@@ -0,0 +1,3 @@
+include(${CMAKE_CURRENT_LIST_DIR}/aidge_core-config-version.cmake)
+
+include(${CMAKE_CURRENT_LIST_DIR}/aidge_core-targets.cmake)
diff --git a/include/backend/OperatorImpl.hpp b/include/aidge/backend/OperatorImpl.hpp
similarity index 98%
rename from include/backend/OperatorImpl.hpp
rename to include/aidge/backend/OperatorImpl.hpp
index 4cf6eef60..a8b4b0938 100644
--- a/include/backend/OperatorImpl.hpp
+++ b/include/aidge/backend/OperatorImpl.hpp
@@ -14,7 +14,7 @@
 
 #include <cstddef>
 #include <vector>
-#include "utils/Types.h"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 class OperatorImpl {
diff --git a/include/backend/TensorImpl.hpp b/include/aidge/backend/TensorImpl.hpp
similarity index 97%
rename from include/backend/TensorImpl.hpp
rename to include/aidge/backend/TensorImpl.hpp
index f4c38d59b..58f2d547e 100644
--- a/include/backend/TensorImpl.hpp
+++ b/include/aidge/backend/TensorImpl.hpp
@@ -14,7 +14,7 @@
 
 #include <cstddef>
 #include <cstdio>
-#include "utils/Types.h"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 class TensorImpl {
diff --git a/include/data/Data.hpp b/include/aidge/data/Data.hpp
similarity index 98%
rename from include/data/Data.hpp
rename to include/aidge/data/Data.hpp
index ddf3c3f1b..4edc4b9a5 100644
--- a/include/data/Data.hpp
+++ b/include/aidge/data/Data.hpp
@@ -12,7 +12,7 @@
 #ifndef __AIDGE_DATA_H__
 #define __AIDGE_DATA_H__
 
-#include "utils/Parameter.hpp"
+#include "aidge/utils/Parameter.hpp"
 
 namespace Aidge {
 enum class DataType {
diff --git a/include/data/Tensor.hpp b/include/aidge/data/Tensor.hpp
similarity index 99%
rename from include/data/Tensor.hpp
rename to include/aidge/data/Tensor.hpp
index 30aa14462..bd2c7317f 100644
--- a/include/data/Tensor.hpp
+++ b/include/aidge/data/Tensor.hpp
@@ -19,10 +19,10 @@
 #include <string>
 #include <vector>
 
-#include "backend/TensorImpl.hpp"
-#include "data/Data.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/TensorImpl.hpp"
+#include "aidge/data/Data.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 
diff --git a/include/graph/Connector.hpp b/include/aidge/graph/Connector.hpp
similarity index 98%
rename from include/graph/Connector.hpp
rename to include/aidge/graph/Connector.hpp
index 5ab5651da..796602a30 100644
--- a/include/graph/Connector.hpp
+++ b/include/aidge/graph/Connector.hpp
@@ -15,7 +15,7 @@
 #include <memory>
 #include <vector>
 
-#include "utils/Types.h"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
     
diff --git a/include/graph/GraphView.hpp b/include/aidge/graph/GraphView.hpp
similarity index 99%
rename from include/graph/GraphView.hpp
rename to include/aidge/graph/GraphView.hpp
index b258f78db..254a1dd92 100644
--- a/include/graph/GraphView.hpp
+++ b/include/aidge/graph/GraphView.hpp
@@ -1,3 +1,4 @@
+
 /********************************************************************************
  * Copyright (c) 2023 CEA-List
  *
@@ -19,8 +20,8 @@
 #include <utility>
 #include <vector>
 
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 enum class DataType;
diff --git a/include/graph/Node.hpp b/include/aidge/graph/Node.hpp
similarity index 99%
rename from include/graph/Node.hpp
rename to include/aidge/graph/Node.hpp
index 94a63becb..977b0e472 100644
--- a/include/graph/Node.hpp
+++ b/include/aidge/graph/Node.hpp
@@ -19,9 +19,9 @@
 #include <vector>
 #include <utility>
 
-#include "graph/Connector.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
+#include "aidge/graph/Connector.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 
diff --git a/include/graph/OpArgs.hpp b/include/aidge/graph/OpArgs.hpp
similarity index 100%
rename from include/graph/OpArgs.hpp
rename to include/aidge/graph/OpArgs.hpp
diff --git a/include/graphmatching/GRegex.hpp b/include/aidge/graphmatching/GRegex.hpp
similarity index 89%
rename from include/graphmatching/GRegex.hpp
rename to include/aidge/graphmatching/GRegex.hpp
index 5a49bcd8f..1292b607c 100644
--- a/include/graphmatching/GRegex.hpp
+++ b/include/aidge/graphmatching/GRegex.hpp
@@ -18,11 +18,11 @@
 #include <memory>       // for shared_ptr
 #include <algorithm>    // for next_permutation
 
-#include "graphmatching/Utile.hpp"
-#include "graphmatching/StmFactory.hpp"
-#include "graphmatching/SeqStm.hpp"
-#include "graphmatching/NodeRegex.hpp"
-#include "graphmatching/Match.hpp"
+#include "aidge/graphmatching/Utile.hpp"
+#include "aidge/graphmatching/StmFactory.hpp"
+#include "aidge/graphmatching/SeqStm.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
+#include "aidge/graphmatching/Match.hpp"
 
 
 namespace Aidge{
diff --git a/include/graphmatching/Match.hpp b/include/aidge/graphmatching/Match.hpp
similarity index 95%
rename from include/graphmatching/Match.hpp
rename to include/aidge/graphmatching/Match.hpp
index 2651bf3ae..27acc2e8a 100644
--- a/include/graphmatching/Match.hpp
+++ b/include/aidge/graphmatching/Match.hpp
@@ -16,7 +16,7 @@
 #include <set>
 #include <iostream>
 #include <cassert>
-#include "graphmatching/Utile.hpp"
+#include "aidge/graphmatching/Utile.hpp"
 
 
 namespace Aidge{
diff --git a/include/graphmatching/NodeRegex.hpp b/include/aidge/graphmatching/NodeRegex.hpp
similarity index 96%
rename from include/graphmatching/NodeRegex.hpp
rename to include/aidge/graphmatching/NodeRegex.hpp
index 24a8ed225..387bfea46 100644
--- a/include/graphmatching/NodeRegex.hpp
+++ b/include/aidge/graphmatching/NodeRegex.hpp
@@ -14,7 +14,7 @@
 #include <cstdlib>
 #include <iostream>
 #include <cstring>
-#include "graph/Node.hpp"
+#include "aidge/graph/Node.hpp"
 
 
 namespace Aidge {
diff --git a/include/graphmatching/SeqStm.hpp b/include/aidge/graphmatching/SeqStm.hpp
similarity index 94%
rename from include/graphmatching/SeqStm.hpp
rename to include/aidge/graphmatching/SeqStm.hpp
index 0abcc3d0d..6ccd6cfcd 100755
--- a/include/graphmatching/SeqStm.hpp
+++ b/include/aidge/graphmatching/SeqStm.hpp
@@ -22,8 +22,8 @@
 #include <vector>
 
 
-#include "graphmatching/NodeRegex.hpp"
-#include "graphmatching/Utile.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
+#include "aidge/graphmatching/Utile.hpp"
 
 
 namespace Aidge {
diff --git a/include/graphmatching/StmFactory.hpp b/include/aidge/graphmatching/StmFactory.hpp
similarity index 90%
rename from include/graphmatching/StmFactory.hpp
rename to include/aidge/graphmatching/StmFactory.hpp
index 2e5e84511..929fdaf35 100644
--- a/include/graphmatching/StmFactory.hpp
+++ b/include/aidge/graphmatching/StmFactory.hpp
@@ -21,9 +21,9 @@
 #include <stdexcept>   // for exception, runtime_error, out_of_range
 #include <regex>
 
-#include "graphmatching/NodeRegex.hpp"
-#include "graphmatching/SeqStm.hpp"
-#include "graphmatching/Utile.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
+#include "aidge/graphmatching/SeqStm.hpp"
+#include "aidge/graphmatching/Utile.hpp"
 
 namespace Aidge{
 
diff --git a/include/graphmatching/Utile.hpp b/include/aidge/graphmatching/Utile.hpp
similarity index 96%
rename from include/graphmatching/Utile.hpp
rename to include/aidge/graphmatching/Utile.hpp
index 251eafd83..acda78cd1 100644
--- a/include/graphmatching/Utile.hpp
+++ b/include/aidge/graphmatching/Utile.hpp
@@ -14,7 +14,7 @@
 
 #include <map>
 
-#include "graph/Node.hpp"
+#include "aidge/graph/Node.hpp"
 #include <map>
 
 namespace Aidge {
diff --git a/include/operator/Add.hpp b/include/aidge/operator/Add.hpp
similarity index 96%
rename from include/operator/Add.hpp
rename to include/aidge/operator/Add.hpp
index fc2dc8a47..13ebcd48c 100644
--- a/include/operator/Add.hpp
+++ b/include/aidge/operator/Add.hpp
@@ -18,11 +18,11 @@
 #include <memory>
 #include <array>
 
-#include "utils/Registrar.hpp"
-#include "operator/Operator.hpp"
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 
diff --git a/include/operator/AvgPooling.hpp b/include/aidge/operator/AvgPooling.hpp
similarity index 96%
rename from include/operator/AvgPooling.hpp
rename to include/aidge/operator/AvgPooling.hpp
index 35a401fef..e79640842 100644
--- a/include/operator/AvgPooling.hpp
+++ b/include/aidge/operator/AvgPooling.hpp
@@ -17,13 +17,13 @@
 #include <vector>
 #include <cmath>
 
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 enum class AvgPoolingParam { StrideDims, KernelDims, PaddingDims };
diff --git a/include/operator/BatchNorm.hpp b/include/aidge/operator/BatchNorm.hpp
similarity index 96%
rename from include/operator/BatchNorm.hpp
rename to include/aidge/operator/BatchNorm.hpp
index 9499cff11..2c11fa2d2 100644
--- a/include/operator/BatchNorm.hpp
+++ b/include/aidge/operator/BatchNorm.hpp
@@ -16,13 +16,13 @@
 #include <memory>
 #include <vector>
 
-#include "utils/Types.h"
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
 
 namespace Aidge {
 enum class BatchNormParam { Epsilon, Momentum };
diff --git a/include/operator/Conv.hpp b/include/aidge/operator/Conv.hpp
similarity index 97%
rename from include/operator/Conv.hpp
rename to include/aidge/operator/Conv.hpp
index 1de05af0b..2620d6261 100644
--- a/include/operator/Conv.hpp
+++ b/include/aidge/operator/Conv.hpp
@@ -17,13 +17,13 @@
 #include <numeric>
 #include <vector>
 
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 enum class ConvParam { StrideDims, DilationDims, InChannels, OutChannels, KernelDims, PaddingDims };
diff --git a/include/operator/ConvDepthWise.hpp b/include/aidge/operator/ConvDepthWise.hpp
similarity index 97%
rename from include/operator/ConvDepthWise.hpp
rename to include/aidge/operator/ConvDepthWise.hpp
index c9a0e6b01..ad9e19512 100644
--- a/include/operator/ConvDepthWise.hpp
+++ b/include/aidge/operator/ConvDepthWise.hpp
@@ -17,13 +17,13 @@
 #include <numeric>
 #include <vector>
 
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 enum class ConvDepthWiseParam { StrideDims, DilationDims, Channels, KernelDims, PaddingDims };
diff --git a/include/operator/FC.hpp b/include/aidge/operator/FC.hpp
similarity index 95%
rename from include/operator/FC.hpp
rename to include/aidge/operator/FC.hpp
index 240210f40..9b36640af 100644
--- a/include/operator/FC.hpp
+++ b/include/aidge/operator/FC.hpp
@@ -18,13 +18,13 @@
 #include <memory>
 #include <vector>
 
-#include "utils/Types.h"
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
 
 namespace Aidge {
 enum class FCParam { OutChannels, NoBias };
diff --git a/include/operator/GenericOperator.hpp b/include/aidge/operator/GenericOperator.hpp
similarity index 97%
rename from include/operator/GenericOperator.hpp
rename to include/aidge/operator/GenericOperator.hpp
index e25fbd13f..b8b86521a 100644
--- a/include/operator/GenericOperator.hpp
+++ b/include/aidge/operator/GenericOperator.hpp
@@ -17,11 +17,11 @@
 #include <string>
 #include <cassert>
 
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "utils/CParameter.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/CParameter.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 class GenericOperator_Op
diff --git a/include/operator/LeakyReLU.hpp b/include/aidge/operator/LeakyReLU.hpp
similarity index 93%
rename from include/operator/LeakyReLU.hpp
rename to include/aidge/operator/LeakyReLU.hpp
index 35a28e835..4793d9ca6 100644
--- a/include/operator/LeakyReLU.hpp
+++ b/include/aidge/operator/LeakyReLU.hpp
@@ -15,14 +15,14 @@
 #include <vector>
 #include <memory>
 
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
-#include "operator/Operator.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "data/Tensor.hpp"
-#include "data/Data.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/Data.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 enum class LeakyReLUParam {
diff --git a/include/operator/Matmul.hpp b/include/aidge/operator/Matmul.hpp
similarity index 95%
rename from include/operator/Matmul.hpp
rename to include/aidge/operator/Matmul.hpp
index 9ecebf9d6..1d8174775 100644
--- a/include/operator/Matmul.hpp
+++ b/include/aidge/operator/Matmul.hpp
@@ -18,13 +18,13 @@
 #include <memory>
 #include <vector>
 
-#include "utils/Types.h"
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
 
 namespace Aidge {
 enum class MatmulParam { OutChannels };
diff --git a/include/operator/MetaOperator.hpp b/include/aidge/operator/MetaOperator.hpp
similarity index 94%
rename from include/operator/MetaOperator.hpp
rename to include/aidge/operator/MetaOperator.hpp
index 5d4bad51c..7fa1a2044 100644
--- a/include/operator/MetaOperator.hpp
+++ b/include/aidge/operator/MetaOperator.hpp
@@ -12,7 +12,7 @@
 #ifndef __AIDGE_CORE_OPERATOR_METAOPERATOR_H__
 #define __AIDGE_CORE_OPERATOR_METAOPERATOR_H__
 
-#include "operator/Operator.hpp"
+#include "aidge/operator/Operator.hpp"
 
 namespace Aidge {
 class MetaOperator : public Operator {
diff --git a/include/operator/Operator.hpp b/include/aidge/operator/Operator.hpp
similarity index 95%
rename from include/operator/Operator.hpp
rename to include/aidge/operator/Operator.hpp
index c302dca1b..e8ce72228 100644
--- a/include/operator/Operator.hpp
+++ b/include/aidge/operator/Operator.hpp
@@ -16,10 +16,10 @@
 #include <string>
 #include <vector>
 
-#include "backend/OperatorImpl.hpp"
-#include "data/Data.hpp"
-#include "data/Tensor.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/data/Data.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 
diff --git a/include/operator/Producer.hpp b/include/aidge/operator/Producer.hpp
similarity index 96%
rename from include/operator/Producer.hpp
rename to include/aidge/operator/Producer.hpp
index 58e6dd61d..5ce01ee38 100644
--- a/include/operator/Producer.hpp
+++ b/include/aidge/operator/Producer.hpp
@@ -15,12 +15,12 @@
 #include <array>
 #include <vector>
 
-#include "utils/Types.h"
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Registrar.hpp"
 
 namespace Aidge {
 
diff --git a/include/operator/ReLU.hpp b/include/aidge/operator/ReLU.hpp
similarity index 93%
rename from include/operator/ReLU.hpp
rename to include/aidge/operator/ReLU.hpp
index e6eddd8fd..0c8c744b4 100644
--- a/include/operator/ReLU.hpp
+++ b/include/aidge/operator/ReLU.hpp
@@ -16,13 +16,13 @@
 #include <memory>
 #include <vector>
 
-#include "utils/Registrar.hpp"
-#include "operator/Operator.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "data/Tensor.hpp"
-#include "data/Data.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/Data.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 
diff --git a/include/operator/Softmax.hpp b/include/aidge/operator/Softmax.hpp
similarity index 93%
rename from include/operator/Softmax.hpp
rename to include/aidge/operator/Softmax.hpp
index 14ec5c561..b430c1385 100644
--- a/include/operator/Softmax.hpp
+++ b/include/aidge/operator/Softmax.hpp
@@ -16,13 +16,13 @@
 #include <memory>
 #include <vector>
 
-#include "utils/Registrar.hpp"
-#include "operator/Operator.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "data/Tensor.hpp"
-#include "data/Data.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/Data.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 
diff --git a/include/scheduler/Scheduler.hpp b/include/aidge/scheduler/Scheduler.hpp
similarity index 100%
rename from include/scheduler/Scheduler.hpp
rename to include/aidge/scheduler/Scheduler.hpp
diff --git a/include/utils/CParameter.hpp b/include/aidge/utils/CParameter.hpp
similarity index 100%
rename from include/utils/CParameter.hpp
rename to include/aidge/utils/CParameter.hpp
diff --git a/include/utils/Parameter.hpp b/include/aidge/utils/Parameter.hpp
similarity index 100%
rename from include/utils/Parameter.hpp
rename to include/aidge/utils/Parameter.hpp
diff --git a/include/utils/Recipies.hpp b/include/aidge/utils/Recipies.hpp
similarity index 90%
rename from include/utils/Recipies.hpp
rename to include/aidge/utils/Recipies.hpp
index 71ed8feb9..eeddbe398 100644
--- a/include/utils/Recipies.hpp
+++ b/include/aidge/utils/Recipies.hpp
@@ -12,8 +12,8 @@
 #ifndef __AIDGE_CORE_UTILS_RECIPIES_H__
 #define __AIDGE_CORE_UTILS_RECIPIES_H__
 
-#include "graph/Node.hpp"
-#include "graph/GraphView.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/graph/GraphView.hpp"
 
 namespace Aidge{
 
diff --git a/include/utils/Registrar.hpp b/include/aidge/utils/Registrar.hpp
similarity index 100%
rename from include/utils/Registrar.hpp
rename to include/aidge/utils/Registrar.hpp
diff --git a/include/utils/Types.h b/include/aidge/utils/Types.h
similarity index 100%
rename from include/utils/Types.h
rename to include/aidge/utils/Types.h
diff --git a/include/utilsParsing/AstNode.hpp b/include/aidge/utilsParsing/AstNode.hpp
similarity index 97%
rename from include/utilsParsing/AstNode.hpp
rename to include/aidge/utilsParsing/AstNode.hpp
index 28d17a543..1158ae148 100644
--- a/include/utilsParsing/AstNode.hpp
+++ b/include/aidge/utilsParsing/AstNode.hpp
@@ -7,7 +7,7 @@
 #include <type_traits>
 #include <vector>
 #include <memory>
-#include "utilsParsing/ParsingToken.hpp"
+#include "aidge/utilsParsing/ParsingToken.hpp"
 
 namespace Aidge{
 
diff --git a/include/utilsParsing/ParsingToken.hpp b/include/aidge/utilsParsing/ParsingToken.hpp
similarity index 100%
rename from include/utilsParsing/ParsingToken.hpp
rename to include/aidge/utilsParsing/ParsingToken.hpp
diff --git a/python_binding/backend/pybind_OperatorImpl.cpp b/python_binding/backend/pybind_OperatorImpl.cpp
index ca413a7a2..11189f2f3 100644
--- a/python_binding/backend/pybind_OperatorImpl.cpp
+++ b/python_binding/backend/pybind_OperatorImpl.cpp
@@ -10,7 +10,7 @@
  ********************************************************************************/
 
 #include <pybind11/pybind11.h>
-#include "backend/OperatorImpl.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/data/pybind_Data.cpp b/python_binding/data/pybind_Data.cpp
index dfa841bdb..3e9f01525 100644
--- a/python_binding/data/pybind_Data.cpp
+++ b/python_binding/data/pybind_Data.cpp
@@ -10,7 +10,7 @@
  ********************************************************************************/
 
 #include <pybind11/pybind11.h>
-#include "data/Data.hpp"
+#include "aidge/data/Data.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/data/pybind_Tensor.cpp b/python_binding/data/pybind_Tensor.cpp
index 38c01cdd2..3f741946d 100644
--- a/python_binding/data/pybind_Tensor.cpp
+++ b/python_binding/data/pybind_Tensor.cpp
@@ -14,11 +14,11 @@
 #include <pybind11/operators.h>
 #include <pybind11/numpy.h>
 
-#include "data/Tensor.hpp"
-#include "data/Data.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
-#include "backend/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/Data.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/backend/TensorImpl.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/graph/pybind_Connector.cpp b/python_binding/graph/pybind_Connector.cpp
index a937fb4f2..5825019c7 100644
--- a/python_binding/graph/pybind_Connector.cpp
+++ b/python_binding/graph/pybind_Connector.cpp
@@ -11,9 +11,9 @@
 
 #include <pybind11/pybind11.h>
 #include <pybind11/stl.h>
-#include "graph/Connector.hpp"
-#include "graph/Node.hpp"
-#include "graph/GraphView.hpp"
+#include "aidge/graph/Connector.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/graph/GraphView.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/graph/pybind_GraphView.cpp b/python_binding/graph/pybind_GraphView.cpp
index b7ef2e166..54c7e2182 100644
--- a/python_binding/graph/pybind_GraphView.cpp
+++ b/python_binding/graph/pybind_GraphView.cpp
@@ -13,10 +13,10 @@
 #include <pybind11/stl.h>
 #include <memory>
 #include <string>
-#include "graph/GraphView.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
-#include "data/Data.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Data.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/graph/pybind_Node.cpp b/python_binding/graph/pybind_Node.cpp
index 0d957eb2c..4433bef7e 100644
--- a/python_binding/graph/pybind_Node.cpp
+++ b/python_binding/graph/pybind_Node.cpp
@@ -14,9 +14,9 @@
 
 #include <memory>
 
-#include "graph/GraphView.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/graph/pybind_OpArgs.cpp b/python_binding/graph/pybind_OpArgs.cpp
index fa7a97431..305c0b731 100644
--- a/python_binding/graph/pybind_OpArgs.cpp
+++ b/python_binding/graph/pybind_OpArgs.cpp
@@ -10,9 +10,9 @@
  ********************************************************************************/
 
 #include <pybind11/pybind11.h>
-#include "graph/OpArgs.hpp"
-#include "graph/Node.hpp"
-#include "graph/GraphView.hpp"
+#include "aidge/graph/OpArgs.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/graph/GraphView.hpp"
 #include <pybind11/stl.h>
 #include <pybind11/complex.h>
 #include <pybind11/functional.h>
diff --git a/python_binding/graphmatching/pybind_GRegex.cpp b/python_binding/graphmatching/pybind_GRegex.cpp
index 4eefccec1..17cfa64bc 100644
--- a/python_binding/graphmatching/pybind_GRegex.cpp
+++ b/python_binding/graphmatching/pybind_GRegex.cpp
@@ -11,8 +11,8 @@
 
 #include <pybind11/pybind11.h>
 #include <pybind11/stl.h>
-#include "graph/GraphView.hpp"
-#include "graphmatching/GRegex.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graphmatching/GRegex.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/graphmatching/pybind_Match.cpp b/python_binding/graphmatching/pybind_Match.cpp
index 8646ff91d..c36ca381f 100644
--- a/python_binding/graphmatching/pybind_Match.cpp
+++ b/python_binding/graphmatching/pybind_Match.cpp
@@ -11,7 +11,7 @@
 
 #include <pybind11/pybind11.h>
 #include <pybind11/stl.h>
-#include "graphmatching/Match.hpp"
+#include "aidge/graphmatching/Match.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/graphmatching/pybind_NodeRegex.cpp b/python_binding/graphmatching/pybind_NodeRegex.cpp
index 1ee4c9332..76e91c495 100644
--- a/python_binding/graphmatching/pybind_NodeRegex.cpp
+++ b/python_binding/graphmatching/pybind_NodeRegex.cpp
@@ -10,7 +10,7 @@
  ********************************************************************************/
 
 #include <pybind11/pybind11.h>
-#include "graphmatching/NodeRegex.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_Add.cpp b/python_binding/operator/pybind_Add.cpp
index 3585db040..d7099e385 100644
--- a/python_binding/operator/pybind_Add.cpp
+++ b/python_binding/operator/pybind_Add.cpp
@@ -11,11 +11,11 @@
 
 #include <pybind11/pybind11.h>
 
-#include "operator/Add.hpp"
-#include "utils/Parameter.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/Add.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_AvgPooling.cpp b/python_binding/operator/pybind_AvgPooling.cpp
index 142f29b5c..66dadba72 100644
--- a/python_binding/operator/pybind_AvgPooling.cpp
+++ b/python_binding/operator/pybind_AvgPooling.cpp
@@ -16,12 +16,12 @@
 #include <vector>
 #include <array>
 
-#include "utils/Parameter.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "operator/AvgPooling.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
-#include "data/Tensor.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/AvgPooling.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Tensor.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_BatchNorm.cpp b/python_binding/operator/pybind_BatchNorm.cpp
index 579b983bc..52578c55a 100644
--- a/python_binding/operator/pybind_BatchNorm.cpp
+++ b/python_binding/operator/pybind_BatchNorm.cpp
@@ -12,10 +12,10 @@
 #include <pybind11/pybind11.h>
 #include <string>
 
-#include "operator/BatchNorm.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Parameter.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/BatchNorm.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/utils/Types.h"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_Conv.cpp b/python_binding/operator/pybind_Conv.cpp
index 663afe1bb..3cf5d818f 100644
--- a/python_binding/operator/pybind_Conv.cpp
+++ b/python_binding/operator/pybind_Conv.cpp
@@ -16,11 +16,11 @@
 #include <vector>
 #include <array>
 
-#include "utils/Parameter.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "operator/Conv.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Conv.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_ConvDepthWise.cpp b/python_binding/operator/pybind_ConvDepthWise.cpp
index bbd888d1b..b64409bdb 100644
--- a/python_binding/operator/pybind_ConvDepthWise.cpp
+++ b/python_binding/operator/pybind_ConvDepthWise.cpp
@@ -16,12 +16,12 @@
 #include <vector>
 #include <array>
 
-#include "utils/Parameter.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "operator/ConvDepthWise.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
-#include "data/Tensor.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/ConvDepthWise.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Tensor.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_FC.cpp b/python_binding/operator/pybind_FC.cpp
index 293ae8418..550f04021 100644
--- a/python_binding/operator/pybind_FC.cpp
+++ b/python_binding/operator/pybind_FC.cpp
@@ -11,11 +11,11 @@
 
 #include <pybind11/pybind11.h>
 
-#include "operator/FC.hpp"
-#include "utils/Parameter.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/FC.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_GenericOperator.cpp b/python_binding/operator/pybind_GenericOperator.cpp
index 7aa5d42ba..578d2ccd2 100644
--- a/python_binding/operator/pybind_GenericOperator.cpp
+++ b/python_binding/operator/pybind_GenericOperator.cpp
@@ -13,9 +13,9 @@
 #include <pybind11/stl.h>
 #include <stdio.h>
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/GenericOperator.hpp"
-#include "operator/Operator.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/GenericOperator.hpp"
+#include "aidge/operator/Operator.hpp"
 namespace py = pybind11;
 namespace Aidge {
 
diff --git a/python_binding/operator/pybind_LeakyReLU.cpp b/python_binding/operator/pybind_LeakyReLU.cpp
index b8ffb9c5d..27a292f0b 100644
--- a/python_binding/operator/pybind_LeakyReLU.cpp
+++ b/python_binding/operator/pybind_LeakyReLU.cpp
@@ -11,9 +11,9 @@
 
 #include <pybind11/pybind11.h>
 
-#include "operator/LeakyReLU.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Parameter.hpp"
+#include "aidge/operator/LeakyReLU.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Parameter.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_Matmul.cpp b/python_binding/operator/pybind_Matmul.cpp
index 7a2748fcd..a26caeba3 100644
--- a/python_binding/operator/pybind_Matmul.cpp
+++ b/python_binding/operator/pybind_Matmul.cpp
@@ -11,11 +11,11 @@
 
 #include <pybind11/pybind11.h>
 
-#include "operator/Matmul.hpp"
-#include "utils/Parameter.hpp"
-#include "backend/OperatorImpl.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/Matmul.hpp"
+#include "aidge/utils/Parameter.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_Operator.cpp b/python_binding/operator/pybind_Operator.cpp
index cf682cc73..ac9a34e0a 100644
--- a/python_binding/operator/pybind_Operator.cpp
+++ b/python_binding/operator/pybind_Operator.cpp
@@ -10,8 +10,8 @@
  ********************************************************************************/
 
 #include <pybind11/pybind11.h>
-#include "backend/OperatorImpl.hpp"
-#include "operator/Operator.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Operator.hpp"
 #include <pybind11/stl.h>
 
 namespace py = pybind11;
diff --git a/python_binding/operator/pybind_Producer.cpp b/python_binding/operator/pybind_Producer.cpp
index c47329941..5757891a3 100644
--- a/python_binding/operator/pybind_Producer.cpp
+++ b/python_binding/operator/pybind_Producer.cpp
@@ -12,12 +12,12 @@
 #include <pybind11/pybind11.h>
 #include <pybind11/stl.h>
 
-#include "utils/Types.h"
-#include "utils/Parameter.hpp"
-// #include "backend/OperatorImpl.hpp"
-#include "operator/Operator.hpp"
-#include "operator/Producer.hpp"
-#include "data/Tensor.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/utils/Parameter.hpp"
+// #include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/data/Tensor.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_ReLU.cpp b/python_binding/operator/pybind_ReLU.cpp
index 794951828..e0d34d5a9 100644
--- a/python_binding/operator/pybind_ReLU.cpp
+++ b/python_binding/operator/pybind_ReLU.cpp
@@ -11,8 +11,8 @@
 
 #include <pybind11/pybind11.h>
 
-#include "operator/ReLU.hpp"
-#include "operator/Operator.hpp"
+#include "aidge/operator/ReLU.hpp"
+#include "aidge/operator/Operator.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/operator/pybind_Softmax.cpp b/python_binding/operator/pybind_Softmax.cpp
index 1cccab6e3..13ba96ade 100644
--- a/python_binding/operator/pybind_Softmax.cpp
+++ b/python_binding/operator/pybind_Softmax.cpp
@@ -12,8 +12,8 @@
 #include <pybind11/pybind11.h>
 #include <string>
 
-#include "operator/Softmax.hpp"
-#include "operator/Operator.hpp"
+#include "aidge/operator/Softmax.hpp"
+#include "aidge/operator/Operator.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/recipies/pybind_Recipies.cpp b/python_binding/recipies/pybind_Recipies.cpp
index c9a1e0384..4746aeacf 100644
--- a/python_binding/recipies/pybind_Recipies.cpp
+++ b/python_binding/recipies/pybind_Recipies.cpp
@@ -14,7 +14,7 @@
 
 #include <string>
 
-#include "utils/Recipies.hpp"
+#include "aidge/utils/Recipies.hpp"
 
 namespace py = pybind11;
 
diff --git a/python_binding/scheduler/pybind_Scheduler.cpp b/python_binding/scheduler/pybind_Scheduler.cpp
index 0f2598c75..2490d5c55 100644
--- a/python_binding/scheduler/pybind_Scheduler.cpp
+++ b/python_binding/scheduler/pybind_Scheduler.cpp
@@ -10,8 +10,8 @@
  ********************************************************************************/
 
 #include <pybind11/pybind11.h>
-#include "scheduler/Scheduler.hpp"
-#include "graph/GraphView.hpp"
+#include "aidge/scheduler/Scheduler.hpp"
+#include "aidge/graph/GraphView.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/python_binding/utils/pybind_Parameter.cpp b/python_binding/utils/pybind_Parameter.cpp
index 95d7d93a3..358316ea0 100644
--- a/python_binding/utils/pybind_Parameter.cpp
+++ b/python_binding/utils/pybind_Parameter.cpp
@@ -1,5 +1,5 @@
 #include <pybind11/pybind11.h>
-#include "utils/Parameter.hpp"
+#include "aidge/utils/Parameter.hpp"
 
 namespace py = pybind11;
 namespace Aidge {
diff --git a/src/graph/Connector.cpp b/src/graph/Connector.cpp
index 4297453f8..ca35b38ad 100644
--- a/src/graph/Connector.cpp
+++ b/src/graph/Connector.cpp
@@ -9,13 +9,13 @@
  *
  ********************************************************************************/
 
-#include "graph/Connector.hpp"
+#include "aidge/graph/Connector.hpp"
 
 #include <map>
 
-#include "graph/GraphView.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 Aidge::Connector::Connector(std::shared_ptr<Aidge::Node> node) {
     mNode = node;
diff --git a/src/graph/GraphView.cpp b/src/graph/GraphView.cpp
index 518f1859f..1b4b1a511 100644
--- a/src/graph/GraphView.cpp
+++ b/src/graph/GraphView.cpp
@@ -14,9 +14,9 @@
 #include <iterator>
 #include <utility>
 
-#include <utils/Types.h>
-#include "graph/GraphView.hpp"
-#include <data/Tensor.hpp>
+#include "aidge/utils/Types.h"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/data/Tensor.hpp"
 
 ///////////////////////////////////////////////////////
 //        FUNCTIONAL DESCRIPTION
diff --git a/src/graph/Node.cpp b/src/graph/Node.cpp
index 37cb84e4f..6104d49dd 100644
--- a/src/graph/Node.cpp
+++ b/src/graph/Node.cpp
@@ -9,13 +9,13 @@
  *
  ********************************************************************************/
 
-#include "graph/Node.hpp"
+#include "aidge/graph/Node.hpp"
 
-#include "graph/GraphView.hpp"
-#include "operator/Producer.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/operator/Producer.hpp"
 #include <memory>
 #include <vector>
-#include "utils/Types.h"
+#include "aidge/utils/Types.h"
 
 Aidge::Node::Node(std::shared_ptr<Operator> op, const char *name)
     : mName((name == nullptr) ? std::string() : std::string(name)),
diff --git a/src/graph/OpArgs.cpp b/src/graph/OpArgs.cpp
index 93ceff0aa..52018e1cd 100644
--- a/src/graph/OpArgs.cpp
+++ b/src/graph/OpArgs.cpp
@@ -9,9 +9,9 @@
  *
  ********************************************************************************/
 
-#include "graph/Node.hpp"
-#include "graph/GraphView.hpp"
-#include "graph/OpArgs.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/OpArgs.hpp"
 
 
 std::shared_ptr<Aidge::GraphView> Aidge::Sequential(std::initializer_list<OpArgs> inputs) {
diff --git a/src/graphmatching/GRegex.cpp b/src/graphmatching/GRegex.cpp
index 80bc724c1..6b54c5a47 100644
--- a/src/graphmatching/GRegex.cpp
+++ b/src/graphmatching/GRegex.cpp
@@ -9,8 +9,8 @@
  *
  ********************************************************************************/
 
-#include "graphmatching/GRegex.hpp"
-#include "graph/GraphView.hpp"
+#include "aidge/graphmatching/GRegex.hpp"
+#include "aidge/graph/GraphView.hpp"
 
 using namespace Aidge; 
 
diff --git a/src/graphmatching/Match.cpp b/src/graphmatching/Match.cpp
index 9a87fac7d..6c08b30b1 100644
--- a/src/graphmatching/Match.cpp
+++ b/src/graphmatching/Match.cpp
@@ -9,7 +9,7 @@
  *
  ********************************************************************************/
 
-#include "graphmatching/Match.hpp"
+#include "aidge/graphmatching/Match.hpp"
 
 using namespace Aidge; 
 
diff --git a/src/graphmatching/NodeRegex.cpp b/src/graphmatching/NodeRegex.cpp
index 8ba6332dd..bbb116d1b 100644
--- a/src/graphmatching/NodeRegex.cpp
+++ b/src/graphmatching/NodeRegex.cpp
@@ -9,7 +9,7 @@
  *
  ********************************************************************************/
 
-#include "graphmatching/NodeRegex.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
 
 
 // Verification done by the Parameter system
diff --git a/src/graphmatching/SeqStm.cpp b/src/graphmatching/SeqStm.cpp
index 89c932bce..84553cb44 100755
--- a/src/graphmatching/SeqStm.cpp
+++ b/src/graphmatching/SeqStm.cpp
@@ -9,7 +9,7 @@
  *
  ********************************************************************************/
 
-#include "graphmatching/SeqStm.hpp"
+#include "aidge/graphmatching/SeqStm.hpp"
 
 using namespace Aidge; 
 
diff --git a/src/graphmatching/StmFactory.cpp b/src/graphmatching/StmFactory.cpp
index 4ca9c6d25..30b1fad81 100644
--- a/src/graphmatching/StmFactory.cpp
+++ b/src/graphmatching/StmFactory.cpp
@@ -9,7 +9,7 @@
  *
  ********************************************************************************/
 
-#include "graphmatching/StmFactory.hpp"
+#include "aidge/graphmatching/StmFactory.hpp"
 
 using namespace Aidge;
 
diff --git a/src/operator/Operator.cpp b/src/operator/Operator.cpp
index 7eb9e7cdc..99b07235e 100644
--- a/src/operator/Operator.cpp
+++ b/src/operator/Operator.cpp
@@ -11,9 +11,9 @@
 
 #include <cassert>
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/Operator.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Operator.hpp"
+#include "aidge/utils/Types.h"
 
 // constexpr Aidge::Operator::Operator(const char* type)
 //     : mType(type)
diff --git a/src/recipies/FuseMulAdd.cpp b/src/recipies/FuseMulAdd.cpp
index e37311a04..dc565bf0a 100644
--- a/src/recipies/FuseMulAdd.cpp
+++ b/src/recipies/FuseMulAdd.cpp
@@ -14,12 +14,12 @@
 #include <memory>
 #include <string>
 
-#include "operator/FC.hpp"
-#include "utils/Recipies.hpp"
-#include "graph/GraphView.hpp"
-#include "graph/Node.hpp"
-#include "operator/Producer.hpp"
-#include "operator/GenericOperator.hpp"
+#include "aidge/operator/FC.hpp"
+#include "aidge/utils/Recipies.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/operator/GenericOperator.hpp"
 
 using namespace Aidge;
 
diff --git a/src/recipies/RemoveFlatten.cpp b/src/recipies/RemoveFlatten.cpp
index 0a28c4767..23a9d645a 100644
--- a/src/recipies/RemoveFlatten.cpp
+++ b/src/recipies/RemoveFlatten.cpp
@@ -11,9 +11,9 @@
 
 #include <memory>
 
-#include "graph/Node.hpp"
-#include "graph/GraphView.hpp"
-#include "utils/Recipies.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/utils/Recipies.hpp"
 
 namespace Aidge {
     void removeFlatten(std::shared_ptr<GraphView> view) {
diff --git a/src/scheduler/Scheduler.cpp b/src/scheduler/Scheduler.cpp
index 5f4b0295b..24953ccb0 100644
--- a/src/scheduler/Scheduler.cpp
+++ b/src/scheduler/Scheduler.cpp
@@ -9,16 +9,16 @@
  *
  ********************************************************************************/
 
-#include "scheduler/Scheduler.hpp"
+#include "aidge/scheduler/Scheduler.hpp"
 
 #include <chrono>
 #include <memory>
 #include <set>
 #include <string>
 
-#include "graph/GraphView.hpp"
-#include "graph/Node.hpp"
-#include "utils/Types.h"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/utils/Types.h"
 
 void drawProgressBar(double progress, int barWidth, const char* additionalInfo = nullptr) {
     putchar('[');
diff --git a/tests/CMakeLists.txt b/unit_tests/CMakeLists.txt
similarity index 100%
rename from tests/CMakeLists.txt
rename to unit_tests/CMakeLists.txt
diff --git a/tests/graph/Test_Connector.cpp b/unit_tests/graph/Test_Connector.cpp
similarity index 98%
rename from tests/graph/Test_Connector.cpp
rename to unit_tests/graph/Test_Connector.cpp
index bde2c9026..b82c9af05 100644
--- a/tests/graph/Test_Connector.cpp
+++ b/unit_tests/graph/Test_Connector.cpp
@@ -11,11 +11,11 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "graph/Connector.hpp"
-#include "graph/Node.hpp"
-#include "operator/GenericOperator.hpp"
-#include "graph/GraphView.hpp"
-#include "graph/OpArgs.hpp"
+#include "aidge/graph/Connector.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/operator/GenericOperator.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/OpArgs.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/graph/Test_GraphView.cpp b/unit_tests/graph/Test_GraphView.cpp
similarity index 96%
rename from tests/graph/Test_GraphView.cpp
rename to unit_tests/graph/Test_GraphView.cpp
index ec5b82525..9fb7a1002 100644
--- a/tests/graph/Test_GraphView.cpp
+++ b/unit_tests/graph/Test_GraphView.cpp
@@ -16,12 +16,12 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "backend/OperatorImpl.hpp"
-#include "data/Tensor.hpp"
-#include "graph/GraphView.hpp"
-#include "operator/Conv.hpp"
-#include "operator/GenericOperator.hpp"
-#include "operator/Producer.hpp"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/operator/Conv.hpp"
+#include "aidge/operator/GenericOperator.hpp"
+#include "aidge/operator/Producer.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/graphMatching/Test_GRegex.cpp b/unit_tests/graphMatching/Test_GRegex.cpp
similarity index 96%
rename from tests/graphMatching/Test_GRegex.cpp
rename to unit_tests/graphMatching/Test_GRegex.cpp
index 9f600ea3f..7184fad76 100644
--- a/tests/graphMatching/Test_GRegex.cpp
+++ b/unit_tests/graphMatching/Test_GRegex.cpp
@@ -18,16 +18,16 @@
 
 #include <catch2/catch_test_macros.hpp>
 //test
-#include <graphmatching/GRegex.hpp>
-#include <graphmatching/StmFactory.hpp>
-#include <graphmatching/SeqStm.hpp>
-#include <graphmatching/NodeRegex.hpp>
-#include <graphmatching/Match.hpp>
+#include "aidge/graphmatching/GRegex.hpp"
+#include "aidge/graphmatching/StmFactory.hpp"
+#include "aidge/graphmatching/SeqStm.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
+#include "aidge/graphmatching/Match.hpp"
 //use
-#include <backend/OperatorImpl.hpp>
-#include <operator/GenericOperator.hpp>
-#include <operator/Producer.hpp>
-#include <graph/GraphView.hpp>
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/GenericOperator.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/graph/GraphView.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/graphMatching/Test_NodeRegex.cpp b/unit_tests/graphMatching/Test_NodeRegex.cpp
similarity index 90%
rename from tests/graphMatching/Test_NodeRegex.cpp
rename to unit_tests/graphMatching/Test_NodeRegex.cpp
index fd583a040..2866642bf 100644
--- a/tests/graphMatching/Test_NodeRegex.cpp
+++ b/unit_tests/graphMatching/Test_NodeRegex.cpp
@@ -16,9 +16,9 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include <backend/OperatorImpl.hpp>
-#include <graphmatching/NodeRegex.hpp>
-#include <operator/GenericOperator.hpp>
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
+#include "aidge/operator/GenericOperator.hpp"
 
 
 using namespace Aidge;
diff --git a/tests/graphMatching/Test_SeqStm.cpp b/unit_tests/graphMatching/Test_SeqStm.cpp
similarity index 95%
rename from tests/graphMatching/Test_SeqStm.cpp
rename to unit_tests/graphMatching/Test_SeqStm.cpp
index 209bde758..baabbbc3c 100644
--- a/tests/graphMatching/Test_SeqStm.cpp
+++ b/unit_tests/graphMatching/Test_SeqStm.cpp
@@ -18,12 +18,12 @@
 
 #include <catch2/catch_test_macros.hpp>
 //test
-#include <graphmatching/SeqStm.hpp>
-#include <graphmatching/NodeRegex.hpp>
+#include "aidge/graphmatching/SeqStm.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
 //use
-#include <backend/OperatorImpl.hpp>
-#include <operator/GenericOperator.hpp>
-#include <operator/Producer.hpp>
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/GenericOperator.hpp"
+#include "aidge/operator/Producer.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/graphMatching/Test_StmFactory.cpp b/unit_tests/graphMatching/Test_StmFactory.cpp
similarity index 96%
rename from tests/graphMatching/Test_StmFactory.cpp
rename to unit_tests/graphMatching/Test_StmFactory.cpp
index 2bc3471d3..b595372fd 100644
--- a/tests/graphMatching/Test_StmFactory.cpp
+++ b/unit_tests/graphMatching/Test_StmFactory.cpp
@@ -18,12 +18,12 @@
 
 #include <catch2/catch_test_macros.hpp>
 //test
-#include <graphmatching/StmFactory.hpp>
-#include <graphmatching/NodeRegex.hpp>
+#include "aidge/graphmatching/StmFactory.hpp"
+#include "aidge/graphmatching/NodeRegex.hpp"
 //use
-#include <backend/OperatorImpl.hpp>
-#include <operator/GenericOperator.hpp>
-#include <operator/Producer.hpp>
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/GenericOperator.hpp"
+#include "aidge/operator/Producer.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_GenericOperator.cpp b/unit_tests/operator/Test_GenericOperator.cpp
similarity index 97%
rename from tests/operator/Test_GenericOperator.cpp
rename to unit_tests/operator/Test_GenericOperator.cpp
index ef7614431..44e9b32f0 100644
--- a/tests/operator/Test_GenericOperator.cpp
+++ b/unit_tests/operator/Test_GenericOperator.cpp
@@ -11,8 +11,8 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "operator/GenericOperator.hpp"
-#include "graph/GraphView.hpp"
+#include "aidge/operator/GenericOperator.hpp"
+#include "aidge/graph/GraphView.hpp"
 #include <cstddef>
 
 using namespace Aidge;
-- 
GitLab