aboutsummaryrefslogtreecommitdiffstats
path: root/dtc/pylibfdt/setup.py
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /dtc/pylibfdt/setup.py
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'dtc/pylibfdt/setup.py')
-rwxr-xr-xdtc/pylibfdt/setup.py59
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'],
+)