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