SUMMARY="A generic-purpose lossless compression algorithm" DESCRIPTION="A generic-purpose lossless compression algorithm that \ compresses data using a combination of a modern variant of the LZ77 algorithm, \ Huffman coding and 2nd order context modeling, with a compression ratio \ comparable to the best currently available general-purpose compression \ methods. It is similar in speed with deflate but offers more dense compression." HOMEPAGE="https://github.com/google/brotli" COPYRIGHT="2009, 2010, 2013-2023 Brotli Authors" LICENSE="MIT" REVISION="1" SOURCE_URI="https://github.com/google/brotli/archive/v$portVersion.tar.gz" CHECKSUM_SHA256="e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff" SOURCE_FILENAME="brotli-$portVersion.tar.gz" ARCHITECTURES="all !x86_gcc2" SECONDARY_ARCHITECTURES="x86" # For now the library will follow $portVersion, # but upstream said that will change in the future. libVersion="$portVersion" libVersionCompat="$libVersion compat >= ${libVersion%%.*}" PROVIDES=" brotli$secondaryArchSuffix = $portVersion cmd:brotli$secondaryArchSuffix = $portVersion lib:libbrotlicommon$secondaryArchSuffix = $libVersionCompat lib:libbrotlidec$secondaryArchSuffix = $libVersionCompat lib:libbrotlienc$secondaryArchSuffix = $libVersionCompat " REQUIRES=" haiku$secondaryArchSuffix " PROVIDES_devel=" brotli${secondaryArchSuffix}_devel = $portVersion devel:libbrotlicommon$secondaryArchSuffix = $libVersionCompat devel:libbrotlicommon_static$secondaryArchSuffix = $libVersion devel:libbrotlidec$secondaryArchSuffix = $libVersionCompat devel:libbrotlidec_static$secondaryArchSuffix = $libVersion devel:libbrotlienc$secondaryArchSuffix = $libVersionCompat devel:libbrotlienc_static$secondaryArchSuffix = $libVersion " REQUIRES_devel=" brotli$secondaryArchSuffix == $portVersion base " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel " BUILD_PREREQUIRES=" cmd:cmake cmd:g++$secondaryArchSuffix cmd:gcc$secondaryArchSuffix cmd:make " PYTHON_PACKAGES+=(python310) PYTHON_VERSIONS+=(3.10) for i in "${!PYTHON_PACKAGES[@]}"; do pythonPackage=${PYTHON_PACKAGES[i]} pythonVersion=${PYTHON_VERSIONS[$i]} eval "PROVIDES_${pythonPackage}=\" ${portName}_$pythonPackage = $portVersion \"" eval "REQUIRES_$pythonPackage=\" haiku$secondaryArchSuffix lib:libpython$pythonVersion$secondaryArchSuffix \"" BUILD_REQUIRES+=" setuptools_$pythonPackage " BUILD_PREREQUIRES+=" cmd:python$pythonVersion " done BUILD() { cmake \ -B build -S . \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_LIBDIR=$libDir \ -DCMAKE_INSTALL_BINDIR=$binDir \ -DCMAKE_INSTALL_INCLUDEDIR=$includeDir \ -DBROTLI_DISABLE_TESTS=OFF make -C build $jobArgs } INSTALL() { make -C build install for i in "${!PYTHON_PACKAGES[@]}"; do pythonPackage=${PYTHON_PACKAGES[i]} pythonVersion=${PYTHON_VERSIONS[$i]} python=python$pythonVersion installLocation=$prefix/lib/$python/vendor-packages/ export PYTHONPATH=$installLocation:$PYTHONPATH mkdir -p $installLocation rm -rf build $python setup.py build install \ --root=/ --prefix=$prefix packageEntries $pythonPackage \ "$prefix"/lib/$python done install -d -m 755 "$manDir"/man{1,3} install -t "$manDir/man1" docs/brotli.1 install -t "$manDir/man3" docs/*.3 prepareInstalledDevelLibs libbrotli{common,dec,enc} fixPkgconfig packageEntries devel \ "$manDir/man3" \ "$developDir" } TEST() { for i in "${!PYTHON_PACKAGES[@]}"; do pythonVersion=${PYTHON_VERSIONS[$i]} python=python$pythonVersion $python setup.py test done }