On Mon, Oct 12, 2020 at 11:34:03AM +0400, marcandre.lureau@xxxxxxxxxx wrote: > From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > > With meson, we have to support out-of-tree build. > > Introduce a --top-builddir option, which will default to the current > directory to lookup generated filed such as version_gen.h and output > directories. > > Other source paths are derived from the location of the setup.py script > in the source tree. > > --build-lib is changed to be relative to the current directory, instead > of relative to setup.py. This has less surprising results! > > Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Applied, thanks. > --- > pylibfdt/Makefile.pylibfdt | 4 ++-- > pylibfdt/setup.py | 27 +++++++++++++++++++-------- > 2 files changed, 21 insertions(+), 10 deletions(-) > > diff --git a/pylibfdt/Makefile.pylibfdt b/pylibfdt/Makefile.pylibfdt > index 6866a0b..1b5f236 100644 > --- a/pylibfdt/Makefile.pylibfdt > +++ b/pylibfdt/Makefile.pylibfdt > @@ -10,7 +10,7 @@ PYLIBFDT_CLEANDIRS_L = build __pycache__ > PYLIBFDT_CLEANDIRS = $(PYLIBFDT_CLEANDIRS_L:%=$(PYLIBFDT_dir)/%) > > SETUP = $(PYLIBFDT_dir)/setup.py > -SETUPFLAGS = > +SETUPFLAGS = --top-builddir . > > ifndef V > SETUPFLAGS += --quiet > @@ -18,7 +18,7 @@ endif > > $(PYMODULE): $(PYLIBFDT_srcs) $(LIBFDT_archive) $(SETUP) $(VERSION_FILE) > @$(VECHO) PYMOD $@ > - $(PYTHON) $(SETUP) $(SETUPFLAGS) build_ext --build-lib=../$(PYLIBFDT_dir) > + $(PYTHON) $(SETUP) $(SETUPFLAGS) build_ext --build-lib=$(PYLIBFDT_dir) > > install_pylibfdt: $(PYMODULE) > @$(VECHO) INSTALL-PYLIB > diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py > index 53f2bef..ef40f15 100755 > --- a/pylibfdt/setup.py > +++ b/pylibfdt/setup.py > @@ -19,23 +19,33 @@ import sys > VERSION_PATTERN = '^#define DTC_VERSION "DTC ([^"]*)"$' > > > +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() > + > + > def get_version(): > - version_file = "../version_gen.h" > + version_file = os.path.join(top_builddir, 'version_gen.h') > f = open(version_file, 'rt') > m = re.match(VERSION_PATTERN, f.readline()) > return m.group(1) > > > -setupdir = os.path.dirname(os.path.abspath(sys.argv[0])) > -os.chdir(setupdir) > - > libfdt_module = Extension( > '_libfdt', > - sources=['libfdt.i'], > - include_dirs=['../libfdt'], > + sources=[os.path.join(srcdir, 'libfdt.i')], > + include_dirs=[os.path.join(srcdir, '../libfdt')], > libraries=['fdt'], > - library_dirs=['../libfdt'], > - swig_opts=['-I../libfdt'], > + library_dirs=[os.path.join(top_builddir, 'libfdt')], > + swig_opts=['-I' + os.path.join(srcdir, '../libfdt')], > ) > > setup( > @@ -44,5 +54,6 @@ setup( > author='Simon Glass <sjg@xxxxxxxxxxxx>', > description='Python binding for libfdt', > ext_modules=[libfdt_module], > + package_dir={'': srcdir}, > py_modules=['libfdt'], > ) -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature