diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /dtc/pylibfdt/setup.py | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'dtc/pylibfdt/setup.py')
-rwxr-xr-x | dtc/pylibfdt/setup.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/dtc/pylibfdt/setup.py b/dtc/pylibfdt/setup.py new file mode 100755 index 000000000..ef40f1542 --- /dev/null +++ b/dtc/pylibfdt/setup.py @@ -0,0 +1,59 @@ +#!/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'], +) |