dev-util/bazel: add test, build verbosity, use flags and warn on ccache
authorSébastien Fabbro <bicatali@gentoo.org>
Sat, 29 Oct 2016 00:51:32 +0000 (00:51 +0000)
committerSébastien Fabbro <bicatali@gentoo.org>
Sat, 29 Oct 2016 00:51:32 +0000 (00:51 +0000)
Was committing almost simultaneously as initial import.
Added myself as maintainer and:
- build verbosity
- ccache failed on me, so adding a warning for the user
- option to install examples, tools, and zsh-completion

Package-Manager: portage-2.3.2

dev-util/bazel/bazel-0.3.2-r1.ebuild [new file with mode: 0644]
dev-util/bazel/metadata.xml

diff --git a/dev-util/bazel/bazel-0.3.2-r1.ebuild b/dev-util/bazel/bazel-0.3.2-r1.ebuild
new file mode 100644 (file)
index 0000000..a78ef97
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit bash-completion-r1 java-pkg-2
+
+DESCRIPTION="Fast and correct automated build system"
+HOMEPAGE="http://bazel.io/"
+SRC_URI="https://github.com/bazelbuild/bazel/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples tools zsh-completion"
+# strip corrupts the bazel binary
+RESTRICT="strip"
+DEPEND="virtual/jdk:1.8"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+       echo ${PATH} | grep -q ccache && \
+               ewarn "${PN} usually fails to compile with ccache, you have been warned"
+       java-pkg-2_pkg_setup
+}
+
+src_compile() {
+       VERBOSE=yes ./compile.sh || die
+       # Use standalone strategy to deactivate the bazel sandbox, since it
+       # conflicts with FEATURES=sandbox.
+       echo "build --verbose_failures --spawn_strategy=standalone --genrule_strategy=standalone" \
+               > "${T}/bazelrc" || die
+       output/bazel --bazelrc="${T}/bazelrc" build //scripts:bazel-complete.bash || die
+}
+
+src_test() {
+       output/bazel test \
+               --verbose_failures \
+               --spawn_strategy=standalone \
+               --genrule_strategy=standalone \
+               --verbose_test_summary \
+               examples/cpp:hello-success_test || die
+}
+
+src_install() {
+       dobin output/bazel
+       newbashcomp bazel-bin/scripts/bazel-complete.bash ${PN}
+       if use zsh-completion ; then
+               insinto /usr/share/zsh/site-functions
+               doins scripts/zsh_completion/_bazel
+       fi
+       if use examples; then
+               docinto examples
+               doins -r examples/*
+               docompress -x /usr/share/doc/${PF}/examples
+       fi
+       # could really build tools but I don't know which ones
+       # are actually used
+       if use tools; then
+               docinto tools
+               doins -r tools/*
+               docompress -x /usr/share/doc/${PF}/tools
+       fi
+}
index 6fa37547639c687807128b12fc572d050b0eea3c..518e125be25325d00ef4e9cbc9bd68e107e55c34 100644 (file)
@@ -4,7 +4,20 @@
        <maintainer type="person">
                <email>zmedico@gentoo.org</email>
        </maintainer>
+       <maintainer type="person">
+               <email>bicatali@gentoo.org</email>
+       </maintainer>
        <upstream>
                <remote-id type="github">bazelbuild/bazel</remote-id>
        </upstream>
+       <longdescription>
+         Bazel is Google's own build tool. Bazel has built-in support for
+         building both client and server software, including client
+         applications for both Android and iOS platforms. It also provides
+         an extensible framework that you can use to develop your own build
+         rules.
+       </longdescription>
+       <use>
+         <flag name="tools">Install extra bazel tools to build from sources</flag>
+       </use>
 </pkgmetadata>