| # Copyright 1999-2012 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=4 |
| |
| inherit eutils cmake-utils |
| |
| JS_P=js-1.8.0-rc1 |
| |
| DESCRIPTION="A modern and featureful DVCS (distributed version control system)" |
| HOMEPAGE="http://veracity-scm.com/" |
| SRC_URI="http://download.sourcegear.com/Veracity/release/${PV}/${PN}-source-${PV}.tar.gz |
| |
| ftp://ftp.mozilla.org/pub/mozilla.org/js/${JS_P}.tar.gz |
| http://ftp.mozilla.org/pub/mozilla.org/js/${JS_P}.tar.gz" |
| |
| LICENSE="Apache-2.0" |
| SLOT="0" |
| KEYWORDS="~amd64 ~x86 ~x86-linux" |
| IUSE="test" |
| |
| S=${WORKDIR}/${PN} |
| |
| # Tests fail in 1.0.0.10517. |
| RESTRICT=test |
| |
| # Veracity can only use the API from spidermonkey-1.8.0 which isn't |
| # available in gentoo-x86. It seems that spidermonkey needs to be |
| # SLOTed... because Veracity needs differing amounts of nontrivial work |
| # to support spidermonkey-1.8.2 or any newer spidermonkey. |
| # |
| # || ( >=dev-lang/spidermonkey-1.8[threadsafe] >=dev-lang/spidermonkey-1.8.5 ) |
| RDEPEND=" |
| dev-libs/icu |
| net-misc/curl |
| dev-libs/nspr |
| sys-apps/util-linux |
| dev-db/sqlite:3 |
| sys-libs/zlib" |
| DEPEND="${RDEPEND} |
| virtual/pkgconfig |
| test? ( app-arch/unzip )" |
| |
| src_prepare() { |
| epatch "${FILESDIR}"/${P}-werror.patch |
| epatch "${FILESDIR}"/${P}-system-sqlite.patch |
| epatch "${FILESDIR}"/${P}-spidermonkey-as-needed.patch |
| |
| rm -rf src/thirdparty || die |
| |
| pushd "${WORKDIR}"/js || die |
| ( |
| EPATCH_OPTS+=" -p8" |
| epatch "${S}"/thirdparty/patches/js-1.8.0-rc1__{jsapi.c,jscntxt.{c,h}}.patch |
| ) |
| } |
| |
| src_configure() { |
| # Convince cmake scripts that spidermonkey has been prepared. |
| mkdir -p thirdparty/{include/spidermonkey,lib} || die |
| |
| local mycmakeargs=( |
| -DVVTHIRDPARTY="${S}"/thirdparty |
| -DSPIDERMONKEY_INCDIR="${S}"/thirdparty/include |
| -DSPIDERMONKEY_LIB="${S}"/thirdparty/lib/libjs.a |
| ) |
| cmake-utils_src_configure |
| } |
| |
| src_compile() { |
| einfo "Compiling embedded spidermonkey (${JS_P})." |
| # Based on thirdparty/build_linux.sh. |
| emake -j1 \ |
| -C "${WORKDIR}"/js/src \ |
| JS_DIST="${EPREFIX}"/usr \ |
| JS_THREADSAFE=1 \ |
| BUILD_OPT=1 \ |
| -f Makefile.ref |
| cp "${WORKDIR}"/js/src/{*.{h,msg,tbl},Linux_All_OPT.OBJ/*.h} thirdparty/include/spidermonkey/ \ |
| || die "Preparing embedded spidermonkey." |
| cp "${WORKDIR}"/js/src/Linux_All_OPT.OBJ/libjs.a thirdparty/lib/ \ |
| || die "Preparing embedded spidermonkey." |
| |
| einfo "Compiling ${P}." |
| cmake-utils_src_compile |
| } |