From d9d317d6a580d4f23cb213d77c03c5ef2f76d732 Mon Sep 17 00:00:00 2001 From: Mario Fink Date: Mon, 25 Jan 2021 19:43:34 +0100 Subject: [PATCH] proper cython setup --- .gitignore | 1 + cython/setup.py | 9 +++++++-- cython/tdm_reaper.pxd | 6 +++--- cython/tdm_reaper.pyx | 6 +++--- makefile | 42 ++++++++++++++++++++++-------------------- 5 files changed, 36 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index f2cae5c..774b57b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ tdmripper *.log *.txt tdmreaper +cython/*.cpp diff --git a/cython/setup.py b/cython/setup.py index 8ccff2b..3a79dc8 100644 --- a/cython/setup.py +++ b/cython/setup.py @@ -6,14 +6,19 @@ extensions = Extension( name="tdm_reaper", sources=["cython/tdm_reaper.pyx"], # libraries=[""], - library_dirs=["lib"], - include_dirs=["lib"], + # library_dirs=["lib"], + include_dirs=["lib","pugixml"], language='c++', extra_compile_args=['-std=c++17','-Wno-unused-variable'], extra_link_args=['-std=c++17'], ) setup( + version='0.1', + description='TDMReaper cython extension', + author='Record Evolution GmbH', + author_email='mario.fink@record-evolution.de', + url='https://github.com/RecordEvolution/tdm_ripper.git', name="tdm_reaper", ext_modules=cythonize(extensions) ) diff --git a/cython/tdm_reaper.pxd b/cython/tdm_reaper.pxd index bdbb3de..4aa84b3 100644 --- a/cython/tdm_reaper.pxd +++ b/cython/tdm_reaper.pxd @@ -6,10 +6,10 @@ from libcpp.string cimport string from libcpp.vector cimport vector from libcpp cimport bool -cdef extern from "../lib/tdm_reaper.hpp": - cdef cppclass raw_eater: +cdef extern from "tdm_reaper.hpp": + cdef cppclass tdmreaper: # constructor(s) - raw_eater() except + + tdmreaper() except + # set new file for decoding # void set_file(string) # # perform conversion (pass any C++ exceptions to Python) diff --git a/cython/tdm_reaper.pyx b/cython/tdm_reaper.pyx index 482ae31..6f43bbf 100644 --- a/cython/tdm_reaper.pyx +++ b/cython/tdm_reaper.pyx @@ -4,14 +4,14 @@ import numpy as np import re import os -cdef class tdmripper: +cdef class tdm_reaper: # C++ instance of class => stack allocated (requires nullary constructor!) - cdef tdm_reaper tdminst + cdef tdm_reaper tdmrip # constructor def __cinit__(self): - self.tdminst = tdm_reaper() + self.tdmrip = tdm_reaper() # def set_file(self, string rawfile): # if not os.path.isfile(rawfile) : diff --git a/makefile b/makefile index 0ec22cc..0e26f56 100644 --- a/makefile +++ b/makefile @@ -55,7 +55,7 @@ main.o : src/main.cpp lib/$(SRC).hpp $(HPP) $(SRC).o : lib/$(SRC).cpp lib/$(SRC).hpp $(HPP) $(CC) -c $(OPT) -I $(LIB) $< -o $@ -clean : +clean-cpp : rm -f $(EXE) *.o src/main.cpp.cpp # --------------------------------------------------------------------------- # @@ -66,25 +66,27 @@ checkps : @ps aux | grep $(EXE) | grep -v "grep" # --------------------------------------------------------------------------- # -# python module -# -# pylib : setup.py pytdm_ripper.pyx tdm_ripper.pxd tdm_ripper.o -# python3 setup.py build_ext --inplace -# -# install : setup.py pytdm_ripper.pyx tdm_ripper.pxd lib/tdm_ripper.cpp lib/tdm_ripper.hpp -# python3 setup.py install -# -# install_osx : setup_osx.py pytdm_ripper.pyx tdm_ripper.pxd lib/tdm_ripper.cpp lib/tdm_ripper.hpp -# python3 setup_osx.py install -# -# lib/libtdmripper.a : -# make -C lib libtdmripper.a -# -# clean-lib : -# rm -f lib/*.o lib/*.a -# rm -f -r build -# rm -f pytdm_ripper.cpp -# rm -f *.so +# python/cython module +cython-help : cython/setup.py + python3 $< --help + +cython-list : cython/setup.py + python3 $< --name --description --author --author-email --url + +cython-build : cython/setup.py cython/tdm_reaper.pyx cython/tdm_reaper.pyx + python3 $< build_ext --inplace + # python3 $< build_ext + +cython-install : cython/setup.py cython/tdm_reaper.pyx cython/tdm_reaper.pyx + python3 $< install + +clean-cython : + rm -vf cython/tdm_reaper.cpp tdm_reaper.cpython-*.so + rm -r build + +# --------------------------------------------------------------------------- # + +clean : clean-cpp clean-cython # --------------------------------------------------------------------------- #