diff --git a/.gitignore b/.gitignore
index 9fbfccca6dfda997d8a0dbfc4b373590feeecad8..aa7d881c875e9ff5721f68d8b99d3f5992a0fd1a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,9 @@ install*/
 __pycache__
 *.pyc
 *.egg-info
+dist*/
+wheelhouse/*
+_version.py
 
 # Mermaid
 *.mmd
@@ -18,4 +21,4 @@ __pycache__
 xml*/
 
 # ONNX
-*.onnx
\ No newline at end of file
+*.onnx
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..02d28fcc73c337ae09582710486d38b1f2e8bb9d
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,33 @@
+[project]
+name = "aidge_backend_cuda"
+description="CUDA implementations of the operators and graph of aidge framework"
+dynamic = ["version"]
+dependencies = ["numpy"]
+requires-python = ">= 3.7"
+readme = "README.md"
+license = { file = "LICENSE" }
+classifiers = [ 
+    "Development Status :: 2 - Pre-Alpha",
+    "Programming Language :: Python :: 3"
+    ]
+
+[build-system]
+requires = ["setuptools>=68", "setuptools-scm", "cmake"]
+build-backend = "setuptools.build_meta"
+
+#####################################################
+# CIBUILDWHEEL
+[tool.cibuildwheel]
+build-frontend = "build"
+before-build = ["bash .gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh ${AIDGE_DEPENDENCIES}"]
+[tool.cibuildwheel.environment]
+# aidge_core do not rely on any aidge dependency, hence this string is empty
+AIGE_DEPENDENCIES = "aidge_core" # format => "dep_1 dep_2 ... dep_n"
+
+#####################################################
+# SETUPTOOLS
+[tool.setuptools]
+# packages=["aidge_core", "export"]
+
+[tool.setuptools_scm]
+version_file = "_version.py"