blob: 9fbf5c0525ec858fb344b512ee63716d0359c840 [file] [log] [blame]
# Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=2
inherit toolchain-funcs flag-o-matic
DESCRIPTION="V8 JavaScript engine."
HOMEPAGE="http://code.google.com/p/v8/"
SRC_URI="http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/${PN}-svn-${PV}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 x86 arm"
IUSE=""
src_compile() {
if tc-is-cross-compiler ; then
tc-getCC
tc-getCXX
tc-getAR
tc-getRANLIB
tc-getLD
tc-getNM
fi
# The v8 SConstruct file adds this flag when building dtoa on gcc 4.4, but
# the build also fails when building src/handles-inl.h
# with "src/handles-inl.h:50: error: dereferencing pointer '<anonymous>'
# does break strict-aliasing rules".
# See http://code.google.com/p/v8/issues/detail?id=463
export CCFLAGS="$CCFLAGS -fno-strict-aliasing \
$(test-flags-CC -Wno-error=unused-but-set-variable) \
$(test-flags-CC -Wno-error=conversion-null)"
export GCC_VERSION="44"
local arch=""
if use "x86"; then
arch="ia32"
elif use "amd64"; then
arch="x64"
elif use "arm"; then
arch="arm"
else
die "Unknown architecture"
fi
scons arch=$arch importenv='SYSROOT,CCFLAGS,CC,CXX,AR,RANLIB,LD,NM' \
|| die "v8 compile failed."
}
src_install() {
dolib libv8.a
insinto /usr/include
doins include/v8.h
}