blob: b9f9a4b692e0782d8e8fbd2668a742ced07b10ba [file] [log] [blame]
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
CROS_WORKON_COMMIT="a3b90bcf39094fedbadeaf4fbd48f42632b2c67d"
CROS_WORKON_TREE="56a1a263e660394fbf07bf534b2f280017ebf65c"
EAPI=2
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() {
eautoreconf || die "eautoreconf failed"
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
if tc-is-cross-compiler; then
econf --disable-md2core || die "configure failed"
else
econf || die "configure failed"
einfo "Running 32b configuration"
cd work32 || die "chdir failed"
append-flags "-m32"
econf --disable-md2core || die "configure failed"
filter-flags "-m32"
fi
}
src_compile() {
tc-export CC CXX PKG_CONFIG
emake || die "emake failed"
if ! tc-is-cross-compiler; then
cd work32 || die "chdir failed"
einfo "Building dump_syms with -m32"
emake src/tools/linux/dump_syms/dump_syms || die "emake failed"
fi
}
src_test() {
emake check || die "Tests failed"
}
src_install() {
tc-export CXX PKG_CONFIG
emake DESTDIR="${D}" install || die "emake install failed"
insinto /usr/include/google-breakpad/client/linux/handler
doins src/client/linux/handler/*.h || die
insinto /usr/include/google-breakpad/client/linux/crash_generation
doins src/client/linux/crash_generation/*.h || die
insinto /usr/include/google-breakpad/common/linux
doins src/common/linux/*.h || die
insinto /usr/include/google-breakpad/processor
doins src/processor/*.h || die
dobin src/tools/linux/core2md/core2md \
src/tools/linux/dump_syms/dump_syms \
src/tools/linux/symupload/sym_upload \
src/tools/linux/symupload/minidump_upload || die
if ! tc-is-cross-compiler; then
newbin work32/src/tools/linux/dump_syms/dump_syms dump_syms.32
dobin src/tools/linux/md2core/minidump-2-core
fi
}