mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-11 22:30:08 +02:00
x86_64 is used as a baseline: the "x86_64" entry, whatever status it has, is transformed into "all", and then the other entries in ARCHITECTURES either dropped or rearranged appropriately.
142 lines
3.2 KiB
Bash
142 lines
3.2 KiB
Bash
SUMMARY="Foreign Function Interface for Python calling C code"
|
|
DESCRIPTION="CFFI is a Python module which allows to call C code."
|
|
HOMEPAGE="https://cffi.readthedocs.io/
|
|
https://pypi.org/project/cffi/"
|
|
COPYRIGHT="2012-2018 Armin Rigo, Maciej Fijalkowski"
|
|
LICENSE="MIT"
|
|
REVISION="3"
|
|
SOURCE_URI="https://files.pythonhosted.org/packages/source/c/cffi/cffi-$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346"
|
|
|
|
ARCHITECTURES="all !x86_gcc2"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
PROVIDES="
|
|
cffi$secondaryArchSuffix = $portVersion
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libffi$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:pkg_config$secondaryArchSuffix
|
|
"
|
|
|
|
PYTHON_PACKAGES=()
|
|
PYTHON_VERSIONS=()
|
|
PYTHON_LIBSUFFIXES=()
|
|
# We don't have python2 for secondaryArch
|
|
if [ -z "$secondaryArchSuffix" ]; then
|
|
PYTHON_PACKAGES+=(python)
|
|
PYTHON_VERSIONS+=(2.7)
|
|
PYTHON_LIBSUFFIXES+=("")
|
|
BUILD_REQUIRES+="
|
|
setuptools_python
|
|
pycparser_python
|
|
"
|
|
BUILD_PREREQUIRES+="
|
|
cmd:python2
|
|
"
|
|
fi
|
|
# gcc2 does not support the flags passed by python3
|
|
if [ "$effectiveTargetArchitecture" != x86_gcc2 ]; then
|
|
PYTHON_PACKAGES+=(python3)
|
|
PYTHON_VERSIONS+=(3.7)
|
|
PYTHON_LIBSUFFIXES+=(m)
|
|
BUILD_REQUIRES+="
|
|
setuptools_python3
|
|
pycparser_python3
|
|
"
|
|
BUILD_PREREQUIRES+="
|
|
cmd:python3
|
|
"
|
|
fi
|
|
for i in "${!PYTHON_PACKAGES[@]}"; do
|
|
pythonPackage=${PYTHON_PACKAGES[i]}
|
|
pythonVersion=${PYTHON_VERSIONS[$i]}
|
|
pythonLibSuffix=${PYTHON_LIBSUFFIXES[$i]}
|
|
|
|
eval "PROVIDES_$pythonPackage=\"
|
|
${portName}_$pythonPackage = $portVersion
|
|
\""
|
|
eval "REQUIRES_$pythonPackage=\"
|
|
haiku$secondaryArchSuffix
|
|
pycparser_$pythonPackage
|
|
lib:libffi$secondaryArchSuffix
|
|
lib:libpython$pythonVersion$pythonLibSuffix$secondaryArchSuffix
|
|
\""
|
|
|
|
TEST_REQUIRES+="
|
|
${portName}_$pythonPackage
|
|
py_$pythonPackage
|
|
pycparser_$pythonPackage
|
|
pytest_$pythonPackage
|
|
"
|
|
done
|
|
if [ "$targetArchitecture" = x86_gcc2 -a -n "$secondaryArchSuffix" ]; then
|
|
PROVIDES_python3+="
|
|
cffi_python3 = $portVersion
|
|
"
|
|
fi
|
|
|
|
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
|
|
mkdir -p "$installLocation"
|
|
$python setup.py install \
|
|
--optimize=1 \
|
|
--root=/ --prefix="$prefix"
|
|
|
|
packageEntries $pythonPackage \
|
|
"$prefix"/lib/$python
|
|
done
|
|
|
|
cd "$sourceDir"
|
|
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
|
|
|
|
python=python$pythonVersion
|
|
echo import cffi | $python
|
|
$python setup.py test
|
|
cd testing
|
|
$python support.py
|
|
done
|
|
}
|