05874d0821
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@redhat.com> Message-Id: <20201012073405.1682782-2-marcandre.lureau@redhat.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
59 lines
1.4 KiB
Python
Executable file
59 lines
1.4 KiB
Python
Executable file
#!/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 distutils.core import setup, Extension
|
|
import os
|
|
import re
|
|
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 = os.path.join(top_builddir, 'version_gen.h')
|
|
f = open(version_file, 'rt')
|
|
m = re.match(VERSION_PATTERN, f.readline())
|
|
return m.group(1)
|
|
|
|
|
|
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',
|
|
version=get_version(),
|
|
author='Simon Glass <sjg@chromium.org>',
|
|
description='Python binding for libfdt',
|
|
ext_modules=[libfdt_module],
|
|
package_dir={'': srcdir},
|
|
py_modules=['libfdt'],
|
|
)
|