1*cd60bc56SAndroid Build Coastguard Worker#!/usr/bin/env python3 2*cd60bc56SAndroid Build Coastguard Worker# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) 3*cd60bc56SAndroid Build Coastguard Worker 4*cd60bc56SAndroid Build Coastguard Worker# While Python 3 is the default, it's also possible to invoke 5*cd60bc56SAndroid Build Coastguard Worker# this setup.py script with Python 2. 6*cd60bc56SAndroid Build Coastguard Worker 7*cd60bc56SAndroid Build Coastguard Worker""" 8*cd60bc56SAndroid Build Coastguard Workersetup.py file for SWIG libfdt 9*cd60bc56SAndroid Build Coastguard WorkerCopyright (C) 2017 Google, Inc. 10*cd60bc56SAndroid Build Coastguard WorkerWritten by Simon Glass <[email protected]> 11*cd60bc56SAndroid Build Coastguard Worker""" 12*cd60bc56SAndroid Build Coastguard Worker 13*cd60bc56SAndroid Build Coastguard Workerfrom setuptools import setup, Extension 14*cd60bc56SAndroid Build Coastguard Workerfrom setuptools.command.build_py import build_py as _build_py 15*cd60bc56SAndroid Build Coastguard Worker 16*cd60bc56SAndroid Build Coastguard Workerimport os 17*cd60bc56SAndroid Build Coastguard Workerimport re 18*cd60bc56SAndroid Build Coastguard Workerimport sys 19*cd60bc56SAndroid Build Coastguard Worker 20*cd60bc56SAndroid Build Coastguard Workersrcdir = os.path.dirname(__file__) 21*cd60bc56SAndroid Build Coastguard Worker 22*cd60bc56SAndroid Build Coastguard Workerwith open(os.path.join(srcdir, "README.md"), "r") as fh: 23*cd60bc56SAndroid Build Coastguard Worker long_description = fh.read() 24*cd60bc56SAndroid Build Coastguard Worker 25*cd60bc56SAndroid Build Coastguard Workerdef get_top_builddir(): 26*cd60bc56SAndroid Build Coastguard Worker if '--top-builddir' in sys.argv: 27*cd60bc56SAndroid Build Coastguard Worker index = sys.argv.index('--top-builddir') 28*cd60bc56SAndroid Build Coastguard Worker sys.argv.pop(index) 29*cd60bc56SAndroid Build Coastguard Worker return sys.argv.pop(index) 30*cd60bc56SAndroid Build Coastguard Worker else: 31*cd60bc56SAndroid Build Coastguard Worker return srcdir 32*cd60bc56SAndroid Build Coastguard Worker 33*cd60bc56SAndroid Build Coastguard Workertop_builddir = get_top_builddir() 34*cd60bc56SAndroid Build Coastguard Worker 35*cd60bc56SAndroid Build Coastguard Workerlibfdt_module = Extension( 36*cd60bc56SAndroid Build Coastguard Worker '_libfdt', 37*cd60bc56SAndroid Build Coastguard Worker sources=[os.path.join(srcdir, 'pylibfdt/libfdt.i')], 38*cd60bc56SAndroid Build Coastguard Worker define_macros=[('PY_SSIZE_T_CLEAN', None)], 39*cd60bc56SAndroid Build Coastguard Worker include_dirs=[os.path.join(srcdir, 'libfdt')], 40*cd60bc56SAndroid Build Coastguard Worker libraries=['fdt'], 41*cd60bc56SAndroid Build Coastguard Worker library_dirs=[os.path.join(top_builddir, 'libfdt')], 42*cd60bc56SAndroid Build Coastguard Worker swig_opts=['-I' + os.path.join(srcdir, 'libfdt')], 43*cd60bc56SAndroid Build Coastguard Worker) 44*cd60bc56SAndroid Build Coastguard Worker 45*cd60bc56SAndroid Build Coastguard Workerclass build_py(_build_py): 46*cd60bc56SAndroid Build Coastguard Worker def run(self): 47*cd60bc56SAndroid Build Coastguard Worker self.run_command("build_ext") 48*cd60bc56SAndroid Build Coastguard Worker return super().run() 49*cd60bc56SAndroid Build Coastguard Worker 50*cd60bc56SAndroid Build Coastguard Workersetup( 51*cd60bc56SAndroid Build Coastguard Worker name='libfdt', 52*cd60bc56SAndroid Build Coastguard Worker use_scm_version={ 53*cd60bc56SAndroid Build Coastguard Worker "root": srcdir, 54*cd60bc56SAndroid Build Coastguard Worker }, 55*cd60bc56SAndroid Build Coastguard Worker cmdclass = {'build_py' : build_py}, 56*cd60bc56SAndroid Build Coastguard Worker setup_requires = ['setuptools_scm'], 57*cd60bc56SAndroid Build Coastguard Worker author='Simon Glass', 58*cd60bc56SAndroid Build Coastguard Worker author_email='[email protected]', 59*cd60bc56SAndroid Build Coastguard Worker description='Python binding for libfdt', 60*cd60bc56SAndroid Build Coastguard Worker ext_modules=[libfdt_module], 61*cd60bc56SAndroid Build Coastguard Worker package_dir={'': os.path.join(srcdir, 'pylibfdt')}, 62*cd60bc56SAndroid Build Coastguard Worker py_modules=['libfdt'], 63*cd60bc56SAndroid Build Coastguard Worker 64*cd60bc56SAndroid Build Coastguard Worker long_description=long_description, 65*cd60bc56SAndroid Build Coastguard Worker long_description_content_type="text/plain", 66*cd60bc56SAndroid Build Coastguard Worker url="https://git.kernel.org/pub/scm/utils/dtc/dtc.git", 67*cd60bc56SAndroid Build Coastguard Worker license="BSD", 68*cd60bc56SAndroid Build Coastguard Worker license_files=["GPL", "BSD-2-Clause"], 69*cd60bc56SAndroid Build Coastguard Worker 70*cd60bc56SAndroid Build Coastguard Worker classifiers=[ 71*cd60bc56SAndroid Build Coastguard Worker "Programming Language :: Python :: 3", 72*cd60bc56SAndroid Build Coastguard Worker "License :: OSI Approved :: BSD License", 73*cd60bc56SAndroid Build Coastguard Worker "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", 74*cd60bc56SAndroid Build Coastguard Worker "Operating System :: OS Independent", 75*cd60bc56SAndroid Build Coastguard Worker ], 76*cd60bc56SAndroid Build Coastguard Worker 77*cd60bc56SAndroid Build Coastguard Worker) 78