Mercurial > hg > btrack
changeset 110:0fdaf082ad1a
Got compiling on M1 mac and Python 3
author | Adam Stark <adamstark.uk@gmail.com> |
---|---|
date | Sun, 31 Oct 2021 23:34:44 +0000 |
parents | edb071c0cd1f |
children | 8fb1610c9192 |
files | modules-and-plug-ins/python-module/btrack_python_module.cpp modules-and-plug-ins/python-module/setup.py |
diffstat | 2 files changed, 32 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/modules-and-plug-ins/python-module/btrack_python_module.cpp Sat Dec 30 23:48:41 2017 +0000 +++ b/modules-and-plug-ins/python-module/btrack_python_module.cpp Sun Oct 31 23:34:44 2021 +0000 @@ -292,21 +292,30 @@ }; //======================================================================= -PyMODINIT_FUNC initbtrack(void) +static struct PyModuleDef btrack_definition = { + PyModuleDef_HEAD_INIT, + "btrack", + "Python bindings for the BTrack beat tracker", + -1, + btrack_methods +}; + +//======================================================================= +PyMODINIT_FUNC PyInit_btrack(void) { - (void)Py_InitModule("btrack", btrack_methods); import_array(); + return PyModule_Create(&btrack_definition); } //======================================================================= int main(int argc, char *argv[]) { - /* Pass argv[0] to the Python interpreter */ - Py_SetProgramName(argv[0]); + wchar_t* program = Py_DecodeLocale (argv[0], NULL); + Py_SetProgramName (program); /* Initialize the Python interpreter. Required. */ Py_Initialize(); /* Add a static module */ - initbtrack(); + PyInit_btrack(); } \ No newline at end of file
--- a/modules-and-plug-ins/python-module/setup.py Sat Dec 30 23:48:41 2017 +0000 +++ b/modules-and-plug-ins/python-module/setup.py Sun Oct 31 23:34:44 2021 +0000 @@ -1,21 +1,33 @@ # setup.py # build command : python setup.py build build_ext --inplace from numpy.distutils.core import setup, Extension -import os, numpy +import os, numpy, platform + +if platform.machine() == 'arm64': + include_path = '/opt/homebrew/include' + library_path = '/opt/homebrew/lib' +else: + include_path = '/usr/local/include' + library_path = '/usr/local/lib' name = 'btrack' -sources = ['btrack_python_module.cpp','../../src/OnsetDetectionFunction.cpp','../../src/BTrack.cpp'] +sources = [ + 'btrack_python_module.cpp', + '../../src/OnsetDetectionFunction.cpp', + '../../src/BTrack.cpp' + ] sources.append ('../../libs/kiss_fft130/kiss_fft.c') include_dirs = [ - numpy.get_include(),'/usr/local/include' - ] + numpy.get_include(), + include_path +] include_dirs.append ('../../libs/kiss_fft130') -setup( name = 'BTrack', +setup(name = 'BTrack', include_dirs = include_dirs, - ext_modules = [Extension(name, sources,libraries = ['fftw3','samplerate'],library_dirs = ['/usr/local/lib'],define_macros=[ + ext_modules = [Extension(name, sources,libraries = ['fftw3','samplerate'],library_dirs = [library_path],define_macros=[ ('USE_FFTW', None)])] ) \ No newline at end of file