From ca5a05af1cff7eaadc2bdf304554c7c6f2a4daa2 Mon Sep 17 00:00:00 2001
From: Irreq <irreq@protonmail.com>
Date: Sun, 9 Jun 2024 13:52:23 +0200
Subject: [PATCH] Improved Cython build with variable check

---
 module/requirements.txt |  2 +-
 module/setup.py.in      | 29 ++++++++++++++++++++++++-----
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/module/requirements.txt b/module/requirements.txt
index 3539bcc..3d2d7c9 100644
--- a/module/requirements.txt
+++ b/module/requirements.txt
@@ -2,4 +2,4 @@ pyyaml
 cython
 numpy 
 matplotlib
-
+setuptools
diff --git a/module/setup.py.in b/module/setup.py.in
index 975a652..1914813 100644
--- a/module/setup.py.in
+++ b/module/setup.py.in
@@ -30,7 +30,6 @@ import numpy
 import config
 
 
-# distutils.log.set_verbosity(-1)  # Disable logging in disutils
 distutils.log.set_verbosity(distutils.log.DEBUG)  # Set DEBUG level
 
 
@@ -45,7 +44,15 @@ compiler_directives = {
     "boundscheck": config.CYTHON_BOUNDS_CHECK,  # Assume user does not index out of bounds
 }
 
-PROJECT_SOURCE = "${CMAKE_CURRENT_SOURCE_DIR}/src"
+PROJECT_SOURCE: str = "${CMAKE_CURRENT_SOURCE_DIR}/src"
+
+PROJECT_NAME: str = "${CMAKE_PROJECT_NAME}"
+assert PROJECT_NAME != "", "Project name is empty, check CMakeLists.txt"
+
+
+PROJECT_VERSION: str = "${CMAKE_PROJECT_VERSION}"
+assert PROJECT_VERSION != "", "Project version is empty, check CMakeLists.txt"
+
 EIGEN_SOURCE = "/usr/include/eigen3"
 NUMPY_SOURCE = numpy.get_include()
 
@@ -60,12 +67,24 @@ ext_modules = [
         include_dirs=[PROJECT_SOURCE, EIGEN_SOURCE, NUMPY_SOURCE],
         language="c++",
     ),
+    Extension(
+        name="pipeline",
+        sources=[
+            "${CMAKE_CURRENT_SOURCE_DIR}/module/src/pipeline.pyx",
+            # "${CMAKE_CURRENT_SOURCE_DIR}/module/src/antenna.pyx",
+            "${CMAKE_CURRENT_SOURCE_DIR}/src/pipeline.cpp",
+            "${CMAKE_CURRENT_SOURCE_DIR}/src/ring_buffer.cpp",
+            "${CMAKE_CURRENT_SOURCE_DIR}/src/receiver.cpp",
+        ],
+        include_dirs=[PROJECT_SOURCE, EIGEN_SOURCE, NUMPY_SOURCE],
+        language="c++",
+    ),
 ]
 
 setup(
-    name="${CMAKE_PROJECT_NAME}",
-    version="${PROJECT_VERSION}",
-    cmdclass={"build_ext": build_ext},
+    name = PROJECT_NAME,
+    version = PROJECT_VERSION,
+    cmdclass = {"build_ext": build_ext},
     ext_modules=cythonize(
         ext_modules,
         annotate=config.CYTHON_ANNOTATE,
-- 
GitLab