diff options
author | Rob Herring <robh@kernel.org> | 2021-11-10 19:11:35 -0600 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2021-11-11 14:34:51 +1100 |
commit | 23b56cb7e18992650c79a04c9e4e3f2740bc1fbd (patch) | |
tree | 363e29f2432274227523b065fba92dbec8012b08 /pylibfdt | |
parent | 69a760747d8d9d1c5dcceebc05e868e1eaf13a2b (diff) | |
download | dtc-23b56cb7e18992650c79a04c9e4e3f2740bc1fbd.zip dtc-23b56cb7e18992650c79a04c9e4e3f2740bc1fbd.tar.gz dtc-23b56cb7e18992650c79a04c9e4e3f2740bc1fbd.tar.bz2 |
pylibfdt: Move setup.py to the top level
Using 'pip' and several setup.py sub-commands currently don't work with
pylibfdt. The primary reason is Python packaging has opinions on the
directory structure of repositories and one of those appears to be the
inability to reference source files outside of setup.py's subtree. This
means a sdist cannot be created with all necessary source components
(i.e. libfdt headers). Moving setup.py to the top-level solves these
problems.
With this change. the following commands now work:
Creating packages for pypi.org:
./setup.py sdist bdist_wheel
Using pip for installs:
pip install .
pip install git+http://github.com/robherring/dtc.git@pypi-v2
Signed-off-by: Rob Herring <robh@kernel.org>
Message-Id: <20211111011135.2386773-5-robh@kernel.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'pylibfdt')
-rw-r--r-- | pylibfdt/Makefile.pylibfdt | 3 | ||||
-rw-r--r-- | pylibfdt/meson.build | 4 | ||||
-rwxr-xr-x | pylibfdt/setup.py | 50 |
3 files changed, 3 insertions, 54 deletions
diff --git a/pylibfdt/Makefile.pylibfdt b/pylibfdt/Makefile.pylibfdt index 015a05e..82f565e 100644 --- a/pylibfdt/Makefile.pylibfdt +++ b/pylibfdt/Makefile.pylibfdt @@ -9,8 +9,7 @@ PYLIBFDT_CLEANFILES = $(PYLIBFDT_CLEANFILES_L:%=$(PYLIBFDT_dir)/%) PYLIBFDT_CLEANDIRS_L = build __pycache__ PYLIBFDT_CLEANDIRS = $(PYLIBFDT_CLEANDIRS_L:%=$(PYLIBFDT_dir)/%) -SETUP = $(PYLIBFDT_dir)/setup.py -SETUPFLAGS = --top-builddir . +SETUP = ./setup.py ifndef V SETUPFLAGS += --quiet diff --git a/pylibfdt/meson.build b/pylibfdt/meson.build index fad5aa1..f684cbb 100644 --- a/pylibfdt/meson.build +++ b/pylibfdt/meson.build @@ -1,5 +1,5 @@ -setup_py = find_program('setup.py') -setup_py = [setup_py.path(), '--quiet', '--top-builddir', meson.current_build_dir() / '..'] +setup_py = find_program('../setup.py') +setup_py = [setup_py.path(), '--quiet', '--top-builddir', meson.project_build_root()] custom_target( 'pylibfdt', diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py deleted file mode 100755 index 75ce09a..0000000 --- a/pylibfdt/setup.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python3 -# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) - -# While Python 3 is the default, it's also possible to invoke -# this setup.py script with Python 2. - -""" -setup.py file for SWIG libfdt -Copyright (C) 2017 Google, Inc. -Written by Simon Glass <sjg@chromium.org> -""" - -from setuptools import setup, Extension -import os -import re -import sys - -def get_top_builddir(): - if '--top-builddir' in sys.argv: - index = sys.argv.index('--top-builddir') - sys.argv.pop(index) - return sys.argv.pop(index) - else: - return os.getcwd() - -srcdir = os.path.dirname(os.path.abspath(sys.argv[0])) -top_builddir = get_top_builddir() - -libfdt_module = Extension( - '_libfdt', - sources=[os.path.join(srcdir, 'libfdt.i')], - include_dirs=[os.path.join(srcdir, '../libfdt')], - libraries=['fdt'], - library_dirs=[os.path.join(top_builddir, 'libfdt')], - swig_opts=['-I' + os.path.join(srcdir, '../libfdt')], -) - -setup( - name='libfdt', - use_scm_version={ - "root": os.path.join(srcdir, '..'), - }, - setup_requires = ['setuptools_scm'], - author='Simon Glass', - author_email='sjg@chromium.org', - description='Python binding for libfdt', - ext_modules=[libfdt_module], - package_dir={'': srcdir}, - py_modules=['libfdt'], -) |