You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
#!/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'], |
|
)
|
|
|