From 3cb5e840563807818c1c8151f13051d8c6d97366 Mon Sep 17 00:00:00 2001 From: fbrosson Date: Sun, 28 Oct 2018 22:58:05 +0000 Subject: [PATCH] dev-python/cffi: new recipe. --- dev-python/cffi/cffi-1.11.5.recipe | 141 +++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 dev-python/cffi/cffi-1.11.5.recipe diff --git a/dev-python/cffi/cffi-1.11.5.recipe b/dev-python/cffi/cffi-1.11.5.recipe new file mode 100644 index 000000000..d1e7cdd39 --- /dev/null +++ b/dev-python/cffi/cffi-1.11.5.recipe @@ -0,0 +1,141 @@ +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="1" +SOURCE_URI="https://files.pythonhosted.org/packages/source/c/cffi/cffi-$portVersion.tar.gz" +CHECKSUM_SHA256="e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +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.6) + 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 +}