1SUMMARY="A C parser and AST generator written in Python"
2DESCRIPTION="pycparser is a parser for the C language, written in pure Python. \
3It is designed to be easily integrated into applications that need to parse C \
4source code."
5HOMEPAGE="https://github.com/eliben/pycparser"
6COPYRIGHT="2008-2018 Eli Bendersky"
7LICENSE="BSD (3-clause)"
8REVISION="3"
9SOURCE_URI="https://github.com/eliben/pycparser/archive/release_v$portVersion.tar.gz"
10CHECKSUM_SHA256="3c797eb2eb1ba57772bb99ffa7caed23c3a2c2ae58daef114c9b09d3a6da97e2"
11SOURCE_FILENAME="pycparser-$portVersion.tar.gz"
12SOURCE_DIR="pycparser-release_v$portVersion"
13
14ARCHITECTURES="any"
15
16PROVIDES="
17	pycparser = $portVersion
18	"
19REQUIRES="
20	haiku
21	"
22
23BUILD_REQUIRES="
24	haiku_devel
25	"
26
27PYTHON_PACKAGES=(python39 python310)
28PYTHON_VERSIONS=(3.9 3.10)
29for i in "${!PYTHON_PACKAGES[@]}"; do
30pythonPackage=${PYTHON_PACKAGES[i]}
31pythonVersion=${PYTHON_VERSIONS[$i]}
32eval "PROVIDES_${pythonPackage}=\"\
33	${portName}_$pythonPackage = $portVersion\
34	\"; \
35REQUIRES_$pythonPackage=\"\
36	haiku\n\
37	cmd:python$pythonVersion\
38	\""
39BUILD_REQUIRES="$BUILD_REQUIRES
40	setuptools_$pythonPackage"
41BUILD_PREREQUIRES="$BUILD_PREREQUIRES
42	cmd:python$pythonVersion"
43done
44
45BUILD()
46{
47	for i in "${!PYTHON_PACKAGES[@]}"; do
48		pythonPackage=${PYTHON_PACKAGES[i]}
49		pythonVersion=${PYTHON_VERSIONS[$i]}
50
51		rm -rf "$sourceDir"-$pythonPackage
52		cp -a "$sourceDir" "$sourceDir"-$pythonPackage
53		cd "$sourceDir"-$pythonPackage
54
55		python=python$pythonVersion
56		$python setup.py build
57		cd pycparser
58		$python _build_tables.py
59		cd ..
60	done
61}
62
63INSTALL()
64{
65	for i in "${!PYTHON_PACKAGES[@]}"; do
66		pythonPackage=${PYTHON_PACKAGES[i]}
67		pythonVersion=${PYTHON_VERSIONS[$i]}
68
69		cd "$sourceDir"-$pythonPackage
70
71		python=python$pythonVersion
72		installLocation=$prefix/lib/$python/vendor-packages/
73		export PYTHONPATH=$installLocation
74		mkdir -p "$installLocation"
75		$python setup.py install --root=/ --prefix="$prefix" --optimize=1
76
77		install -m 755 -d "$dataDir"/licenses
78		install -m 644 -T LICENSE "$dataDir"/licenses/pycparser
79
80		packageEntries $pythonPackage \
81			"$dataDir" \
82			"$prefix"/lib/$python
83	done
84
85	install -m 755 -d "$dataDir"/licenses "$docDir"
86	install -m 644 -T LICENSE "$dataDir"/licenses/pycparser
87	install -m 644 -t "$docDir" README.rst
88}
89
90TEST()
91{
92	for i in "${!PYTHON_PACKAGES[@]}"; do
93		pythonPackage=${PYTHON_PACKAGES[i]}
94		pythonVersion=${PYTHON_VERSIONS[$i]}
95
96		cd "$sourceDir"-$pythonPackage
97
98		python=python$pythonVersion
99		$python tests/all_tests.py
100	done
101}
102