diff --git a/.gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh b/.gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh
index 40c506269db0c83b8033bceb973adaef8b22e14f..efc0bc5d3579c89cd47fdb8b6d1221cee242ae0f 100755
--- a/.gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh
+++ b/.gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh
@@ -1,12 +1,20 @@
+#!/bin/bash
 set -x
 set -e
-DEPS_NAME=("aidge_core")
-for repo in $DEPS_NAME; do
-  cd $repo
-  mkdir build
-  cd build
-  cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DAIDGE_INSTALL=1
-  make -j4 all install
+for repo in $AIGE_DEPENDENCIES ; do
+  REPO_PATH=$(find /host/home/ -type d -iname $repo \
+                               -not -path '*install*' \
+                               -not -path '*.git*' \
+                               -not -path '*miniconda*' \
+                               -not -path '*.local*' \
+                               -not -path "*lib*" \
+                               -not -path "*/$repo/$repo" \
+                               -print -quit) 
+
+  cd $REPO_PATH
+  mkdir -p build # creating build if its not already there to hold the build of cpp files
+  rm -rf build/* # build from scratch
+  pip install . -v
 done
 set +x
 set +e
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..1556b44423bf6c6f4eb4f9ba0602ce0b980d9367
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,11 @@
+# [project]
+# name = "aidge_core"
+# dependencies = ["numpy"]
+# version="$(cat version.txt)"
+
+[tool.cibuildwheel]
+build-frontend = "build"
+before-build = [".gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh ${AIDGE_DEPENDENCIES}"]
+
+[tool.cibuildwheel.environment]
+AIGE_DEPENDENCIES = "" # aidge_core do not rely on any aidge dependency