Luca Weiss | b111122 | 2019-09-07 17:25:31 +0200 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
Rob Herring | a5ac29b | 2019-06-20 15:19:40 -0600 | [diff] [blame] | 2 | # SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) |
Simon Glass | 50f2507 | 2017-03-17 16:14:30 -0600 | [diff] [blame] | 3 | |
Luca Weiss | b111122 | 2019-09-07 17:25:31 +0200 | [diff] [blame] | 4 | # While Python 3 is the default, it's also possible to invoke |
| 5 | # this setup.py script with Python 2. |
| 6 | |
Simon Glass | 50f2507 | 2017-03-17 16:14:30 -0600 | [diff] [blame] | 7 | """ |
| 8 | setup.py file for SWIG libfdt |
Simon Glass | 90db6d9 | 2017-04-07 15:51:32 -0600 | [diff] [blame] | 9 | Copyright (C) 2017 Google, Inc. |
| 10 | Written by Simon Glass <sjg@chromium.org> |
Simon Glass | 50f2507 | 2017-03-17 16:14:30 -0600 | [diff] [blame] | 11 | """ |
| 12 | |
| 13 | from distutils.core import setup, Extension |
| 14 | import os |
Simon Glass | 90db6d9 | 2017-04-07 15:51:32 -0600 | [diff] [blame] | 15 | import re |
Simon Glass | 50f2507 | 2017-03-17 16:14:30 -0600 | [diff] [blame] | 16 | import sys |
| 17 | |
David Gibson | 98972f1 | 2018-08-10 14:25:42 +1000 | [diff] [blame] | 18 | |
| 19 | VERSION_PATTERN = '^#define DTC_VERSION "DTC ([^"]*)"$' |
Simon Glass | 90db6d9 | 2017-04-07 15:51:32 -0600 | [diff] [blame] | 20 | |
| 21 | |
David Gibson | 98972f1 | 2018-08-10 14:25:42 +1000 | [diff] [blame] | 22 | def get_version(): |
David Gibson | 1e4a092 | 2018-08-10 17:33:24 +1000 | [diff] [blame] | 23 | version_file = "../version_gen.h" |
David Gibson | 98972f1 | 2018-08-10 14:25:42 +1000 | [diff] [blame] | 24 | f = open(version_file, 'rt') |
| 25 | m = re.match(VERSION_PATTERN, f.readline()) |
| 26 | return m.group(1) |
Simon Glass | 90db6d9 | 2017-04-07 15:51:32 -0600 | [diff] [blame] | 27 | |
David Gibson | 607b858 | 2018-11-23 22:11:33 +1100 | [diff] [blame] | 28 | |
David Gibson | 1e4a092 | 2018-08-10 17:33:24 +1000 | [diff] [blame] | 29 | setupdir = os.path.dirname(os.path.abspath(sys.argv[0])) |
| 30 | os.chdir(setupdir) |
Simon Glass | 50f2507 | 2017-03-17 16:14:30 -0600 | [diff] [blame] | 31 | |
| 32 | libfdt_module = Extension( |
| 33 | '_libfdt', |
David Gibson | 607b858 | 2018-11-23 22:11:33 +1100 | [diff] [blame] | 34 | sources=['libfdt.i'], |
| 35 | include_dirs=['../libfdt'], |
| 36 | libraries=['fdt'], |
| 37 | library_dirs=['../libfdt'], |
| 38 | swig_opts=['-I../libfdt'], |
Simon Glass | 50f2507 | 2017-03-17 16:14:30 -0600 | [diff] [blame] | 39 | ) |
| 40 | |
Simon Glass | b04a2cf | 2017-04-05 10:01:39 -0600 | [diff] [blame] | 41 | setup( |
| 42 | name='libfdt', |
David Gibson | 607b858 | 2018-11-23 22:11:33 +1100 | [diff] [blame] | 43 | version=get_version(), |
Simon Glass | b04a2cf | 2017-04-05 10:01:39 -0600 | [diff] [blame] | 44 | author='Simon Glass <sjg@chromium.org>', |
| 45 | description='Python binding for libfdt', |
| 46 | ext_modules=[libfdt_module], |
David Gibson | 1e4a092 | 2018-08-10 17:33:24 +1000 | [diff] [blame] | 47 | py_modules=['libfdt'], |
Simon Glass | b04a2cf | 2017-04-05 10:01:39 -0600 | [diff] [blame] | 48 | ) |