Skip to content

Commit

Permalink
dev-libs/icu: Add experimental, untested revbump using C++11. No keyw…
Browse files Browse the repository at this point in the history
…ords. Bug 575198

Package-Manager: portage-2.2.27
  • Loading branch information
akhuettel committed Feb 29, 2016
1 parent 997b0ca commit f6686f8
Showing 1 changed file with 134 additions and 0 deletions.
134 changes: 134 additions & 0 deletions dev-libs/icu/icu-56.1-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5

inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal

DESCRIPTION="International Components for Unicode"
HOMEPAGE="http://www.icu-project.org/"
SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"

LICENSE="BSD"

SLOT="0/56.C++11"

KEYWORDS=""
IUSE="debug doc examples static-libs"

DEPEND="
virtual/pkgconfig
doc? (
app-doc/doxygen[dot]
)
"

S="${WORKDIR}/${PN}/source"

MULTILIB_CHOST_TOOLS=(
/usr/bin/icu-config
)

src_prepare() {
local variable

epatch "${FILESDIR}/${PN}-remove-bashisms.patch"
epatch_user

# Disable renaming as it is stupind thing to do
sed -i \
-e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
common/unicode/uconfig.h || die

# Fix linking of icudata
sed -i \
-e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
config/mh-linux || die

# Append doxygen configuration to configure
sed -i \
-e 's:icudefs.mk:icudefs.mk Doxyfile:' \
configure.ac || die

eautoreconf
}

src_configure() {
# Use C++11 now. Let's see what else breaks.
append-cxxflags -std=c++11

if tc-is-cross-compiler; then
mkdir "${WORKDIR}"/host || die
pushd "${WORKDIR}"/host >/dev/null || die

CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
"${S}"/configure --disable-renaming --disable-debug \
--disable-samples --enable-static || die
emake

popd >/dev/null || die
fi

multilib-minimal_src_configure
}

multilib_src_configure() {
local myeconfargs=(
--disable-renaming
--disable-samples
$(use_enable debug)
$(use_enable static-libs static)
)

multilib_is_native_abi && myeconfargs+=(
$(use_enable examples samples)
)
tc-is-cross-compiler && myeconfargs+=(
--with-cross-build="${WORKDIR}"/host
)

# icu tries to use clang by default
tc-export CC CXX

ECONF_SOURCE=${S} \
econf "${myeconfargs[@]}"
}

multilib_src_compile() {
default

if multilib_is_native_abi && use doc; then
doxygen -u Doxyfile || die
doxygen Doxyfile || die
fi
}

multilib_src_test() {
# INTLTEST_OPTS: intltest options
# -e: Exhaustive testing
# -l: Reporting of memory leaks
# -v: Increased verbosity
# IOTEST_OPTS: iotest options
# -e: Exhaustive testing
# -v: Increased verbosity
# CINTLTST_OPTS: cintltst options
# -e: Exhaustive testing
# -v: Increased verbosity
emake -j1 VERBOSE="1" check
}

multilib_src_install() {
default

if multilib_is_native_abi && use doc; then
dohtml -p api -r doc/html/
fi
}

multilib_src_install_all() {
einstalldocs
dohtml ../readme.html
}

0 comments on commit f6686f8

Please sign in to comment.