| #!/usr/bin/env python |
| |
| from setuptools import setup, Extension |
| from setuptools.command.build_py import build_py |
| from glob import glob |
| |
| sources = glob('WiringPi/devLib/*.c') |
| sources += glob('WiringPi/wiringPi/*.c') |
| sources += ['wiringpi.i'] |
| |
| try: |
| sources.remove('WiringPi/devLib/piFaceOld.c') |
| except ValueError: |
| # the file is already excluded in the source distribution |
| pass |
| |
| |
| # Fix so that build_ext runs before build_py |
| # Without this, wiringpi.py is generated too late and doesn't |
| # end up in the distribution when running setup.py bdist or bdist_wheel. |
| # Based on: |
| # https://stackoverflow.com/a/29551581/7938656 |
| # and |
| # https://blog.niteoweb.com/setuptools-run-custom-code-in-setup-py/ |
| class Build_ext_first(build_py): |
| def run(self): |
| self.run_command("build_ext") |
| return build_py.run(self) |
| |
| |
| _wiringpi = Extension( |
| '_wiringpi', |
| include_dirs=['WiringPi/wiringPi','WiringPi/devLib'], |
| sources=sources, |
| extra_link_args=['-lcrypt', '-lrt'] |
| ) |
| |
| setup( |
| name = 'wiringpi', |
| version = '2.44.3', |
| ext_modules = [ _wiringpi ], |
| py_modules = ["wiringpi"], |
| install_requires=[], |
| cmdclass = {'build_py' : Build_ext_first}, |
| ) |