# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. # Distributed under the terms of the GNU General Public License v2 EAPI=4 CROS_WORKON_PROJECT="chromiumos/platform/google-breakpad" inherit autotools cros-debug cros-workon toolchain-funcs DESCRIPTION="Google crash reporting" HOMEPAGE="http://code.google.com/p/google-breakpad" SRC_URI="" LICENSE="BSD" SLOT="0" KEYWORDS="~amd64 ~x86 ~arm" IUSE="" RDEPEND="net-misc/curl" DEPEND="${RDEPEND}" src_prepare() { [[ ${ABI} == "x32" ]] && epatch "${FILESDIR}"/{curl,lss}-x32.patch eautoreconf if ! tc-is-cross-compiler; then einfo "Creating a separate 32b src directory" mkdir ../work32 cp -a . ../work32 mv ../work32 . fi } src_configure() { #TODO(raymes): Uprev breakpad so this isn't necessary. See # (crosbug.com/14275). [ "$ARCH" = "arm" ] && append-cflags "-marm" && append-cxxflags "-marm" # We purposefully disable optimizations due to optimizations causing # src/processor code to crash (minidump_stackwalk) as well as tests # to fail. See # http://code.google.com/p/google-breakpad/issues/detail?id=400. append-flags "-O0" tc-export CC CXX LD PKG_CONFIG cros-workon_src_configure if ! tc-is-cross-compiler; then einfo "Running 32b configuration" cd work32 || die "chdir failed" append-flags "-m32" econf filter-flags "-m32" fi } src_compile() { tc-export CC CXX PKG_CONFIG emake if ! tc-is-cross-compiler; then cd work32 || die "chdir failed" einfo "Building dump_syms and minidump-2-core with -m32" emake src/tools/linux/dump_syms/dump_syms \ src/tools/linux/md2core/minidump-2-core fi } src_test() { emake check } src_install() { tc-export CXX PKG_CONFIG emake DESTDIR="${D}" install insinto /usr/include/google-breakpad/client/linux/handler doins src/client/linux/handler/*.h insinto /usr/include/google-breakpad/client/linux/crash_generation doins src/client/linux/crash_generation/*.h insinto /usr/include/google-breakpad/common/linux doins src/common/linux/*.h insinto /usr/include/google-breakpad/processor doins src/processor/*.h dobin src/tools/linux/core2md/core2md \ src/tools/linux/md2core/minidump-2-core \ src/tools/linux/dump_syms/dump_syms \ src/tools/linux/symupload/sym_upload \ src/tools/linux/symupload/minidump_upload if ! tc-is-cross-compiler; then newbin work32/src/tools/linux/dump_syms/dump_syms dump_syms.32 newbin work32/src/tools/linux/md2core/minidump-2-core \ minidump-2-core.32 fi }