]> sigrok.org Git - libsigrok.git/blob - bindings/python/setup.py
Add SWIG interface file and build script for Python bindings.
[libsigrok.git] / bindings / python / setup.py
1 #
2 # This file is part of the sigrok project.
3 #
4 # Copyright (C) 2013 Martin Ling <martin-sigrok@earth.li>
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19 from distutils.core import setup, Extension
20 import subprocess
21
22 sr_includes = subprocess.check_output(
23     ["pkg-config", "--cflags", "libsigrok"]).rstrip().split(' ')
24
25 sr_libs = subprocess.check_output(
26     ["pkg-config", "--libs", "libsigrok"]).rstrip().split(' ')
27
28 sr_version = subprocess.check_output(
29     ["pkg-config", "--version", "libsigrok"]).rstrip()
30
31 setup(
32     name = 'libsigrok',
33     version = sr_version,
34     description = "libsigrok API wrapper",
35     py_modules = ['libsigrok'],
36     ext_modules = [
37         Extension('_libsigrok',
38             sources = ['libsigrok_python.i'],
39             swig_opts = sr_includes,
40             include_dirs = [i[2:] for i in sr_includes if i.startswith('-I')],
41             library_dirs = [l[2:] for l in sr_libs if l.startswith('-L')],
42             libraries = [l[2:] for l in sr_libs if l.startswith('-l')]
43         )
44     ],
45 )