mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-12 06:40:08 +02:00
Until now, INSTALL was doing both the build and the installation. But this was bad because INSTALL was cleaning the build directory of the python subpackage in order to build the python3 subpackage. Creating separate build trees for each of the python subpackages allows to keep both build trees. We can now use a TEST function.
108 lines
2.5 KiB
Bash
108 lines
2.5 KiB
Bash
SUMMARY="Python Lex & Yacc"
|
|
DESCRIPTION="PLY is yet another implementation of lex and yacc for Python. \
|
|
Some notable features include the fact that its implemented entirely in \
|
|
Python and it uses LALR(1) parsing which is efficient and well suited for \
|
|
larger grammars.
|
|
|
|
PLY provides most of the standard lex/yacc features including support for \
|
|
empty productions, precedence rules, error recovery, and support for \
|
|
ambiguous grammars.
|
|
|
|
PLY is extremely easy to use and provides very extensive error checking."
|
|
HOMEPAGE="https://www.dabeaz.com/ply/
|
|
https://pypi.org/project/ply/"
|
|
COPYRIGHT="2006-2018 David Beazley"
|
|
LICENSE="BSD (3-clause)"
|
|
REVISION="2"
|
|
SOURCE_URI="https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da/ply-$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3"
|
|
|
|
ARCHITECTURES="any"
|
|
|
|
PROVIDES="
|
|
$portName = $portVersion
|
|
"
|
|
REQUIRES="
|
|
haiku
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku_devel
|
|
setuptools_python
|
|
setuptools_python3
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:python
|
|
cmd:python3
|
|
"
|
|
|
|
PYTHON_PACKAGES=(python python3)
|
|
PYTHON_VERSIONS=(2.7 3.6)
|
|
for i in "${!PYTHON_PACKAGES[@]}"; do
|
|
pythonPackage=${PYTHON_PACKAGES[i]}
|
|
pythonVersion=${PYTHON_VERSIONS[$i]}
|
|
|
|
eval "PROVIDES_${pythonPackage}=\"\
|
|
${portName}_$pythonPackage = $portVersion
|
|
\""
|
|
eval "REQUIRES_$pythonPackage=\"
|
|
haiku
|
|
cmd:python$pythonVersion
|
|
\""
|
|
TEST_REQUIRES+="
|
|
six_$pythonPackage
|
|
"
|
|
done
|
|
|
|
BUILD()
|
|
{
|
|
for i in "${!PYTHON_PACKAGES[@]}"; do
|
|
pythonPackage=${PYTHON_PACKAGES[i]}
|
|
pythonVersion=${PYTHON_VERSIONS[$i]}
|
|
|
|
rm -rf "$sourceDir"-$pythonPackage
|
|
cp -a "$sourceDir" "$sourceDir"-$pythonPackage
|
|
cd "$sourceDir"-$pythonPackage
|
|
|
|
python=python$pythonVersion
|
|
$python setup.py build
|
|
done
|
|
}
|
|
INSTALL()
|
|
{
|
|
for i in "${!PYTHON_PACKAGES[@]}"; do
|
|
pythonPackage=${PYTHON_PACKAGES[i]}
|
|
pythonVersion=${PYTHON_VERSIONS[$i]}
|
|
|
|
cd "$sourceDir"-$pythonPackage
|
|
|
|
python=python$pythonVersion
|
|
installLocation=$prefix/lib/$python/vendor-packages/
|
|
export PYTHONPATH=$installLocation:$PYTHONPATH
|
|
mkdir -p $installLocation
|
|
$python setup.py install \
|
|
--root=/ --prefix="$prefix"
|
|
|
|
packageEntries $pythonPackage \
|
|
"$prefix"/lib/$python
|
|
done
|
|
|
|
install -m 755 -d "$docDir"
|
|
install -m 644 -t "$docDir" README.md
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
for i in "${!PYTHON_PACKAGES[@]}"; do
|
|
pythonPackage=${PYTHON_PACKAGES[i]}
|
|
pythonVersion=${PYTHON_VERSIONS[$i]}
|
|
|
|
cd "$sourceDir"-$pythonPackage/test
|
|
|
|
python=python$pythonVersion
|
|
$python testlex.py
|
|
$python testyacc.py
|
|
$python testcpp.py
|
|
done
|
|
}
|