From f43bfceb5f1551f35d0a882a2ba0a7879c34a524 Mon Sep 17 00:00:00 2001 From: Mark Liffiton Date: Sat, 12 Aug 2017 23:34:01 -0500 Subject: [PATCH] Fix for build missing wiringpi.py. --- setup.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 542a08c..7d05e0e 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ #!/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') @@ -13,6 +14,20 @@ 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'], @@ -22,8 +37,9 @@ _wiringpi = Extension( setup( name = 'wiringpi', - version = '2.44.2', + version = '2.44.3', ext_modules = [ _wiringpi ], py_modules = ["wiringpi"], install_requires=[], + cmdclass = {'build_py' : Build_ext_first}, )