Blob Blame History Raw
#!/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_version():
    version_file = "../version_gen.h"
    f = open(version_file, 'rt')
    m = re.match(VERSION_PATTERN, f.readline())
    return m.group(1)


setupdir = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir(setupdir)

libfdt_module = Extension(
    '_libfdt',
    sources=['libfdt.i'],
    include_dirs=['../libfdt'],
    libraries=['fdt'],
    library_dirs=['../libfdt'],
    swig_opts=['-I../libfdt'],
)

setup(
    name='libfdt',
    version=get_version(),
    author='Simon Glass <sjg@chromium.org>',
    description='Python binding for libfdt',
    ext_modules=[libfdt_module],
    py_modules=['libfdt'],
)