X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fpython%2Fsetup.py;h=e716fc852a38fa60ec3137f29ccbb2d4e8cb7862;hb=abc7146d032d41af41e8bd20ea64554021e86656;hp=57f9bc627b519671112c8e2fdfad85503dcaab7e;hpb=9bb2f327a9dd482f609b10e34f72e57816cd4531;p=libsigrok.git diff --git a/bindings/python/setup.py b/bindings/python/setup.py index 57f9bc62..e716fc85 100644 --- a/bindings/python/setup.py +++ b/bindings/python/setup.py @@ -1,5 +1,5 @@ ## -## This file is part of the sigrok project. +## This file is part of the libsigrok project. ## ## Copyright (C) 2013 Martin Ling ## @@ -17,30 +17,35 @@ ## along with this program. If not, see . ## -from distutils.core import setup, Extension +from setuptools import setup, find_packages, Extension import subprocess +import os -sr_includes = subprocess.check_output( - ["pkg-config", "--cflags", "libsigrok"]).rstrip().decode().split(' ') +sr_includes, sr_lib_dirs, sr_libs, (sr_version,) = [ + subprocess.check_output( + ["pkg-config", option, "glib-2.0", "glibmm-2.4", "pygobject-3.0"] + ).decode().rstrip().split(' ') + for option in + ("--cflags-only-I", "--libs-only-L", "--libs-only-l", "--modversion")] -sr_libs = subprocess.check_output( - ["pkg-config", "--libs", "libsigrok"]).rstrip().decode().split(' ') - -sr_version = subprocess.check_output( - ["pkg-config", "--modversion", "libsigrok"]).decode().rstrip() +includes = ['../../include', '../cxx/include'] + [i[2:] for i in sr_includes] +libdirs = ['../../.libs', '../cxx/.libs'] + [l[2:] for l in sr_lib_dirs] +libs = [l[2:] for l in sr_libs] + ['sigrokxx'] setup( name = 'libsigrok', + namespace_packages = ['sigrok'], + packages = find_packages(), version = sr_version, description = "libsigrok API wrapper", - py_modules = ['libsigrok'], ext_modules = [ - Extension('_libsigrok', - sources = ['libsigrok_python.i'], - swig_opts = sr_includes, - include_dirs = [i[2:] for i in sr_includes if i.startswith('-I')], - library_dirs = [l[2:] for l in sr_libs if l.startswith('-L')], - libraries = [l[2:] for l in sr_libs if l.startswith('-l')] - ) + Extension('sigrok.core._classes', + sources = ['sigrok/core/classes.i'], + swig_opts = ['-c++', '-threads'] + + ['-I%s' % i for i in includes], + extra_compile_args = ['-std=c++11'], + include_dirs = includes, + library_dirs = libdirs, + libraries = libs) ], )