aports/main/protobuf/APKBUILD
2025-05-13 09:52:15 +00:00

119 lines
2.9 KiB
Text

# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=protobuf
pkgver=29.4
pkgrel=0
pkgdesc="Library for extensible, efficient structure packing"
url="https://github.com/protocolbuffers/protobuf"
arch="all"
license="BSD-3-Clause"
depends="
protoc=$pkgver-r$pkgrel
libprotoc=$pkgver-r$pkgrel
libprotobuf=$pkgver-r$pkgrel
libprotobuf-lite=$pkgver-r$pkgrel
"
depends_dev="
protoc=$pkgver-r$pkgrel
zlib-dev
"
makedepends="
$depends_dev
abseil-cpp-dev
cmake
samurai
"
checkdepends="gtest-dev"
subpackages="
$pkgname-dev
$pkgname-vim::noarch
protoc
libprotoc
libprotobuf
libprotobuf-lite
"
source="$pkgname-$pkgver.tar.gz::https://github.com/protocolbuffers/protobuf/archive/refs/tags/v$pkgver.tar.gz
fix-tests.patch
fix-upb-linkarray.patch
soversion.patch
"
# fails some
case "$CARCH" in
armhf) options="$options !check" ;;
esac
build() {
export CFLAGS="$CFLAGS -DNDEBUG -O2 -flto=auto"
export CXXFLAGS="$CXXFLAGS -DNDEBUG -O2 -flto=auto -Wno-deprecated-declarations"
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=ON \
-Dprotobuf_BUILD_TESTS="$(want_check && echo ON || echo OFF)" \
-Dprotobuf_BUILD_LIBPROTOC=ON \
-Dprotobuf_ABSL_PROVIDER="package" \
-Dprotobuf_ALLOW_CCACHE=ON \
-Dprotobuf_USE_EXTERNAL_GTEST=ON
cmake --build build
}
check() {
ctest --test-dir build
}
package() {
DESTDIR="$pkgdir" cmake --install build
sed -i \
-e "/Requires:/s|;| |g" \
-e "/Requires:/s|::|_|g" \
"$pkgdir"/usr/lib/pkgconfig/protobuf.pc
install -Dm644 editors/proto.vim \
"$pkgdir"/usr/share/vim/vimfiles/syntax/proto.vim
}
vim() {
pkgdesc="Vim syntax for $pkgname"
depends=""
install_if="$pkgname=$pkgver-r$pkgrel vim"
amove usr/share/vim/vimfiles/syntax/proto.vim
}
libprotoc() {
depends=""
pkgdesc="Runtime library for Protocol Buffer compiler"
amove usr/lib/libprotoc.so.*
}
protoc() {
depends=""
pkgdesc="Protocol buffer compiler binary and library"
amove usr/bin/protoc*
}
libprotobuf() {
depends=""
pkgdesc="Runtime library for C++ users of protocol buffers"
amove usr/lib/libprotobuf.so.*
}
lite() {
depends=""
pkgdesc="Runtime library for C++ users with 'lite runtime' setting of protocol buffers"
amove usr/lib/libprotobuf-lite.so.*
}
sha512sums="
c888cb9961d58b7fb11a3363ff4d2684605cdd79756712f407ffe5f275569bf69b4370f1d2a0e20775646745cddd41a9b510f1c1981be4e969c9acf0dc2ba734 protobuf-29.4.tar.gz
f35a076a33766253769fd6b3abdbe9deddfbf9f9f6743c6afb3f1f0d07ab8462c68e0a00549e0b2d5400208585cdab6cdb1ccb904d33cc69c458a06425505da0 fix-tests.patch
91487cf7f234cdb000b16406b338ce08930370a2bebf94a1552aeee0cd466d839fddeb15af24fde02c19b3904f2d97055f3c006ac1c5c4094dc2972cb8234e99 fix-upb-linkarray.patch
5ab37a77566a55f1a47287594899e07788afb939586b3249be024945af6cb28c22847b2af2b46a9bd8e497293b650c93d348514f562d271a1498b5e8ca7c612f soversion.patch
"