blob: b754ba1ec4af00fc6cb511ba5e5acb05314f6491 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Please bump with dev-libs/icu
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/icu.asc
inherit autotools flag-o-matic multilib-minimal toolchain-funcs verify-sig
MY_PV=${PV/_rc/-rc}
MY_PV=${MY_PV//./_}
DESCRIPTION="External layout part of International Components for Unicode"
HOMEPAGE="https://icu.unicode.org/"
SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
S="${WORKDIR}"/${PN/-layoutex}/source
LICENSE="BSD"
SLOT="0/${PV%.*}.1"
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="~alpha amd64 ~arm64 ~hppa ppc ppc64 sparc x86"
fi
IUSE="debug static-libs test"
RESTRICT="!test? ( test )"
DEPEND="
~dev-libs/icu-${PV}[${MULTILIB_USEDEP}]
dev-libs/icu-le-hb[${MULTILIB_USEDEP}]
"
RDEPEND="${DEPEND}"
BDEPEND="
virtual/pkgconfig
verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
"
PATCHES=( "${FILESDIR}/${PN}-65.1-remove-bashisms.patch" )
src_prepare() {
default
# Disable renaming as it assumes stable ABI and that consumers
# won't use unofficial APIs. We need this despite the configure argument.
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
eautoreconf
}
src_configure() {
MAKEOPTS+=" VERBOSE=1"
# ICU tries to append -std=c++11 without this, so as of 71.1,
# despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
# we still need this.
append-cxxflags -std=c++14
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
# We want a minimal build as this is just for layoutex
# so we disable as much as possible
--disable-samples
--disable-extras
--disable-icuio
# This is icu-layoutex, so..
--enable-layoutex
$(use_enable debug)
$(use_enable static-libs static)
# Need tools for tests, otherwise get this in configure:
# "## Note: you have disabled ICU's tools. This ICU cannot build its own data or tests.
# ## Expect build failures in the 'data', 'test', and other directories."
# ... although layoutex has no tests right now anyway, but let's keep this
# for the future.
$(use_enable test tools)
$(use_enable test tests)
)
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_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 -C layoutex VERBOSE="1" check
}
multilib_src_install() {
pushd layoutex &>/dev/null || die
default
popd &>/dev/null || die
}
|