diff options
Diffstat (limited to 'user/protobuf/APKBUILD')
-rw-r--r-- | user/protobuf/APKBUILD | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/user/protobuf/APKBUILD b/user/protobuf/APKBUILD new file mode 100644 index 000000000..f8ff737a6 --- /dev/null +++ b/user/protobuf/APKBUILD @@ -0,0 +1,108 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman@gmail.com> +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Dan Theisen <djt@hxx.in> +# TODO: Build Python module, and clean up Ruby build process +pkgname=protobuf +_gemname=google-protobuf +pkgver=3.6.1 +_tstver=1.8.0 +pkgrel=0 +pkgdesc="Library for extensible, efficient structure packing" +url="https://github.com/google/protobuf" +arch="all" +license="BSD-3-Clause" +depends_dev="zlib-dev" +makedepends="$depends_dev autoconf automake libtool ruby ruby-dev ruby-rake" +subpackages="ruby-$_gemname:_ruby $pkgname-dev $pkgname-vim::noarch" +source="$pkgname-$pkgver.tar.gz::https://github.com/google/$pkgname/archive/v$pkgver.tar.gz + googletest-$_tstver.tar.gz::https://github.com/google/googletest/archive/release-$_tstver.tar.gz + musl-fix.patch + trim-rakefile.patch" +builddir="$srcdir/$pkgname-$pkgver" + +prepare() { + default_prepare + + cd "$builddir" + ./autogen.sh + + # symlink tests to the test directory + rm -rf third_party/* + ln -sf "$srcdir"/googletest-release-$_tstver \ + "$builddir"/third_party/googletest +} + +build() { + cd "$builddir" + + CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks" LDFLAGS="$LDFLAGS -latomic" \ + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var + make + + cd "$builddir"/ruby + + # Generate proto files for built-in protocols. + rake genproto + + gem build $_gemname.gemspec + gem install --local \ + --install-dir dist \ + --ignore-dependencies \ + --no-document \ + --verbose \ + $_gemname + + # build test-suite + local test; for test in googletest googlemock; do + cd "$builddir/third_party/googletest/$test" + autoreconf -vfi + ./configure + make + done +} + +# TODO: Run tests for ruby gem. +check() { + cd "$builddir" + make check +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +_ruby() { + pkgdesc="Ruby bindings to Google's data interchange format" + + local gemdir="$subpkgdir/$(ruby -e 'puts Gem.default_dir')" + cd "$builddir"/ruby/dist + + mkdir -p "$gemdir" + cp -r extensions gems specifications "$gemdir"/ + + # Remove duplicated .so libs (should be only in extensions directory). + find "$gemdir"/gems/ -name "*.so" -delete + + # Remove unnecessary files. + cd "$gemdir"/gems/$_gemname-$pkgver + rm -r ext/ tests/ +} + +vim() { + pkgdesc="Vim syntax for $pkgname" + depends="" + install_if="$pkgname=$pkgver-r$pkgrel vim" + + install -Dm644 "$builddir"/editors/proto.vim \ + "$subpkgdir"/usr/share/vim/vimfiles/syntax/proto.vim +} + +sha512sums="1bc175d24b49de1b1e41eaf39598194e583afffb924c86c8d2e569d935af21874be76b2cbd4d9655a1d38bac3d4cd811de88bc2c72d81bad79115e69e5b0d839 protobuf-3.6.1.tar.gz +1dbece324473e53a83a60601b02c92c089f5d314761351974e097b2cf4d24af4296f9eb8653b6b03b1e363d9c5f793897acae1f0c7ac40149216035c4d395d9d googletest-1.8.0.tar.gz +875592bc5dc5efe9087ea1b340673f54c984ecd5aa3b110a2da136bdc28009af7ce1a9c57f4747ff809fc02eb6c39a0209c277177172af467a54172d9700188a musl-fix.patch +d1d11fe76d2a1ae92f47f9eb1e0d94c67b7192a9dc4a382b6c0835f4fe4dbc2f98ca1b3c5095ad5b4e368581072330f943209c0decea02ebb47938588543fdb1 trim-rakefile.patch" |