diff options
author | Rob Herring <robh@kernel.org> | 2022-02-03 12:04:07 -0600 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2022-02-04 18:52:36 +1100 |
commit | c001fc01a43e7a06447c06ea3d50bd60641322b8 (patch) | |
tree | 26440a76e179450c07084ddcfe65086e69b407d4 | |
parent | 26c54f840d2340271f305c04f0d66bafac93274f (diff) | |
download | dtc-c001fc01a43e7a06447c06ea3d50bd60641322b8.zip dtc-c001fc01a43e7a06447c06ea3d50bd60641322b8.tar.gz dtc-c001fc01a43e7a06447c06ea3d50bd60641322b8.tar.bz2 |
pylibfdt: fix swig build in install
A 'pip install' is silently broken unless the tree is dirty and contains
pylibfdt/libfdt.py. The problem is a known issue[1] with SWIG and
setuptools where the 'build_py' stage needing module.py runs before
the 'build_ext' stage which generates it. The work-around is to override
'build_py' to run 'build_ext' first.
[1] https://stackoverflow.com/questions/50239473/building-a-module-with-setuptools-and-swig
Signed-off-by: Rob Herring <robh@kernel.org>
Message-Id: <20220203180408.611645-2-robh@kernel.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | MANIFEST.in | 1 | ||||
-rwxr-xr-x | setup.py | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/MANIFEST.in b/MANIFEST.in index ff8f5d6..0eee931 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -6,7 +6,6 @@ include GPL include BSD-2-Clause include setup.py include pylibfdt/libfdt.i -include pylibfdt/*.py include libfdt/libfdt.h include libfdt/fdt.h include libfdt/libfdt_env.h @@ -11,6 +11,8 @@ Written by Simon Glass <sjg@chromium.org> """ from setuptools import setup, Extension +from setuptools.command.build_py import build_py as _build_py + import os import re import sys @@ -40,11 +42,17 @@ libfdt_module = Extension( swig_opts=['-I' + os.path.join(srcdir, 'libfdt')], ) +class build_py(_build_py): + def run(self): + self.run_command("build_ext") + return super().run() + setup( name='libfdt', use_scm_version={ "root": srcdir, }, + cmdclass = {'build_py' : build_py}, setup_requires = ['setuptools_scm'], author='Simon Glass', author_email='sjg@chromium.org', |