# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit bash-completion-r1 eutils toolchain-funcs MY_PV="${PV/_p/_r}" MY_P=${PN}-${MY_PV} DESCRIPTION="Android platform tools (adb, fastboot, and mkbootimg)" HOMEPAGE="https://android.googlesource.com/platform/system/core.git/" # Downloading git tarballs generated by android.googlesource.com # Archlinux package contains patches and build script generation mechanism. SRC_URI="https://git.archlinux.org/svntogit/community.git/snapshot/community-60a4f2f6691c0c4bdb6c0ea984ff7795b90b3021.tar.gz -> ${MY_P}-arch.tar.gz https://github.com/android/platform_system_core/archive/android-${MY_PV}.tar.gz -> ${MY_P}-core.tar.gz https://android.googlesource.com/platform/system/extras/+archive/d87d593acb228e2f54dd76a5c3e657d854d4c2e4.tar.gz -> ${MY_P}-extras.tar.gz https://android.googlesource.com/platform/external/selinux/+archive/513d660a96626a5e00256986d7a45cff3044b70d.tar.gz -> ${MY_P}-libselinux.tar.gz https://android.googlesource.com/platform/external/f2fs-tools/+archive/a32b1b97037bc6b7b3bd47dcf2a84ac599725f6a.tar.gz -> ${MY_P}-f2fs-tools.tar.gz https://boringssl.googlesource.com/boringssl/+archive/bbfe603519bc54fbc4c8dd87efe1ed385df550b4.tar.gz -> ${MY_P}-boringssl.tar.gz" # The entire source code is Apache-2.0, except for fastboot which is BSD-2. LICENSE="Apache-2.0 BSD-2" SLOT="0" KEYWORDS="~amd64" IUSE="libressl" RDEPEND="sys-libs/zlib:= !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) dev-libs/libpcre2" # dev-lang/ruby is necessary for build script generation. DEPEND="${RDEPEND} dev-cpp/gtest dev-util/cmake dev-util/ninja virtual/rubygems" S=${WORKDIR} src_unpack() { local dir filename for filename in ${A}; do if [[ ${filename} =~ ^${MY_P}-(.*)\.tar\.gz$ ]]; then dir=${BASH_REMATCH[1]} mkdir -p "${dir}" || die pushd "${dir}" >/dev/null unpack "${filename}" popd > /dev/null else die "unrecognized file in \${A}: ${filename}" fi done } src_prepare() { mv core/*/* core/ || die mv libselinux selinux || die epatch --directory=core arch/*/trunk/fix_build_core.patch epatch --directory=selinux arch/*/trunk/fix_build_selinux.patch cp arch/*/trunk/generate_build.rb ./ || die sed -e 's|^#include $|/*\0*/|' \ -e 's|^__BEGIN_DECLS$|#ifdef __cplusplus\nextern "C" {\n#endif|' \ -e 's|^__END_DECLS$|#ifdef __cplusplus\n}\n#endif|' \ -i extras/ext4_utils/sha1.{c,h} || die #580686 default } src_compile() { # Dynamically detect rubygems interpreter (bug 631398). local ruby_bin=$(type -P ruby) ruby_error_log=${T}/generate_build.rb.log success= for ruby_bin in "${ruby_bin}" "${ruby_bin}"[[:digit:]][[:digit:]]; do "${ruby_bin}" ./generate_build.rb 1> build.ninja 2> "${ruby_error_log}" && \ { success=1; break; } done if [[ -z ${success} ]]; then cat "${ruby_error_log}" >&2 die "${ruby_bin} ./generate_build.rb failed" fi tc-export CC CXX mkdir boringssl/build pushd boringssl/build > /dev/null || die cmake -GNinja .. ninja || die popd > /dev/null || die ninja || die } src_install() { dobin adb dobin fastboot dobin core/mkbootimg/mkbootimg # Omitting, app-shells/bash-completion contains completion for adb #newbashcomp arch/*/trunk/bash_completion.adb adb newbashcomp arch/*/trunk/bash_completion.fastboot fastboot }