proper cython setup

This commit is contained in:
Mario Fink 2021-01-25 19:43:34 +01:00
parent 1ec81cafe6
commit d9d317d6a5
5 changed files with 36 additions and 28 deletions

1
.gitignore vendored
View File

@ -11,3 +11,4 @@ tdmripper
*.log
*.txt
tdmreaper
cython/*.cpp

View File

@ -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)
)

View File

@ -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)

View File

@ -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) :

View File

@ -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
# --------------------------------------------------------------------------- #