Files
haikuports/dev-python/ply/ply-3.11.recipe
fbrosson 47973ca8f1 PLY: add python(2) subpackage, add TEST, add BUILD, fix HOMEPAGE.
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.
2018-10-27 10:47:44 +00:00

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
}