mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 19:50:05 +02:00
x86_64 is used as a baseline: the "x86_64" entry, whatever status it has, is transformed into "all", and then the other entries in ARCHITECTURES either dropped or rearranged appropriately.
212 lines
6.8 KiB
Bash
212 lines
6.8 KiB
Bash
SUMMARY="Libraries to support Unicode and globalization"
|
|
DESCRIPTION="International Components for Unicode (ICU) is a mature, widely \
|
|
used set of C/C++ and Java libraries providing Unicode and Globalization \
|
|
support for software applications. ICU is widely portable and gives \
|
|
applications the same results on all platforms and between C/C++ and Java \
|
|
software.
|
|
ICU is released under a nonrestrictive open source license that is suitable \
|
|
for use with both commercial software and with other open source or free \
|
|
software.
|
|
|
|
Here are a few highlights of the services provided by ICU:
|
|
|
|
* Code Page Conversion: Convert text data to or from Unicode and nearly any \
|
|
other character set or encoding. ICU's conversion tables are based on charset \
|
|
data collected by IBM over the course of many decades, and is the most \
|
|
complete available anywhere.
|
|
* Collation: Compare strings according to the conventions and standards of a \
|
|
particular language, region or country. ICU's collation is based on the \
|
|
Unicode Collation Algorithm plus locale-specific comparison rules from the \
|
|
Common Locale Data Repository, a comprehensive source for this type of data.
|
|
* Formatting: Format numbers, dates, times and currency amounts according the \
|
|
conventions of a chosen locale. This includes translating month and day names \
|
|
into the selected language, choosing appropriate abbreviations, ordering \
|
|
fields correctly, etc. This data also comes from the Common Locale Data \
|
|
Repository.
|
|
* Time Calculations: Multiple types of calendars are provided beyond the \
|
|
traditional Gregorian calendar. A thorough set of timezone calculation APIs \
|
|
are provided.
|
|
* Unicode Support: ICU closely tracks the Unicode standard, providing easy \
|
|
access to all of the many Unicode character properties, Unicode Normalization, \
|
|
Case Folding and other fundamental operations as specified by the Unicode \
|
|
Standard.
|
|
* Regular Expression: ICU's regular expressions fully support Unicode while \
|
|
providing very competitive performance.
|
|
* Bidi: support for handling text containing a mixture of left to right \
|
|
(English) and right to left (Arabic or Hebrew) data.
|
|
* Text Boundaries: Locate the positions of words, sentences, paragraphs within \
|
|
a range of text, or identify locations that would be suitable for line \
|
|
wrapping when displaying the text."
|
|
HOMEPAGE="http://www.icu-project.org"
|
|
COPYRIGHT="1995-2019 IBM Corporation and others."
|
|
LICENSE="ICU"
|
|
REVISION="3"
|
|
SOURCE_URI="https://github.com/unicode-org/icu/releases/download/release-57-2/icu4c-57_2-src.tgz"
|
|
SOURCE_URI_2="http://www.iana.org/time-zones/repository/releases/tzdata2019c.tar.gz#noarchive"
|
|
SOURCE_URI_3="https://github.com/unicode-org/icu/releases/download/release-57-2/icu4c-57_2-data.zip#noarchive"
|
|
CHECKSUM_SHA256="623f04b921827a041f42d52495a6f8eee6565a9b7557051ac68e099123ff28dc"
|
|
CHECKSUM_SHA256_2="79c7806dab09072308da0e3d22c37d3b245015a591891ea147d3b133b60ffc7c"
|
|
CHECKSUM_SHA256_3="83b0c4f73c97e26cd74309377da5ca157d55a45f38a96584bfaad0d0fbd55cbf"
|
|
SOURCE_DIR="icu"
|
|
PATCHES="icu-$portVersion.patchset"
|
|
if [ $effectiveTargetArchitecture = x86_gcc2 ]; then
|
|
PATCHES+="
|
|
"icu-$portVersion.gcc2.patchset"
|
|
"
|
|
fi
|
|
|
|
ARCHITECTURES="all"
|
|
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
|
|
|
|
PROVIDES="
|
|
icu$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libicudata$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libicui18n$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libicuio$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libicule$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libiculx$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libicutest$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libicutu$secondaryArchSuffix = $portVersion compat >= 57
|
|
lib:libicuuc$secondaryArchSuffix = $portVersion compat >= 57
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
"
|
|
|
|
# Devel package only available for gcc2 (new gcc versions can build newer icu
|
|
# versions and there's no need to keep this one, but we keep it for some time
|
|
# for backwards compatibility)
|
|
if [ $effectiveTargetArchitecture == x86_gcc2 ]; then
|
|
SUMMARY_devel="The ICU development files"
|
|
PROVIDES_devel="
|
|
icu${secondaryArchSuffix}_devel = $portVersion
|
|
cmd:icu_config${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libicudata${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libicui18n${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libicuio${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libicule${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libiculx${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libicutest${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libicutu${secondaryArchSuffix} = $portVersion compat >= 57
|
|
devel:libicuuc${secondaryArchSuffix} = $portVersion compat >= 57
|
|
"
|
|
REQUIRES_devel="
|
|
icu${secondaryArchSuffix} == $portVersion base
|
|
"
|
|
fi
|
|
|
|
if [ -z "$secondaryArchSuffix" ]; then
|
|
SUMMARY_tools="The ICU support tools"
|
|
PROVIDES_tools="
|
|
icu_tools = $portVersion
|
|
cmd:derb
|
|
cmd:genbrk
|
|
cmd:genccode
|
|
cmd:gencfu
|
|
cmd:gencmn
|
|
cmd:gencnval
|
|
cmd:gendict
|
|
cmd:gennorm2
|
|
cmd:genrb
|
|
cmd:gensprep
|
|
cmd:icuinfo
|
|
cmd:icupkg
|
|
cmd:makeconv
|
|
cmd:pkgdata
|
|
"
|
|
REQUIRES_tools="
|
|
icu == $portVersion base
|
|
haiku
|
|
"
|
|
fi
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:autoconf
|
|
cmd:awk
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:pkg_config$secondaryArchSuffix
|
|
cmd:sed
|
|
cmd:unzip
|
|
cmd:tar
|
|
cmd:gunzip
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
cd source
|
|
cp ../../../sources-2/tzdata*.tar.gz tools/tzcode/
|
|
unzip -oq ../../../sources-3/icu4c-*-data.zip
|
|
rm -f data/in/icudt??l.dat
|
|
autoconf
|
|
runConfigure ./configure \
|
|
--disable-samples --disable-extras
|
|
make $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
cd source
|
|
make install
|
|
|
|
prepareInstalledDevelLibs \
|
|
libicudata \
|
|
libicui18n \
|
|
libicuio \
|
|
libicule \
|
|
libiculx \
|
|
libicutu \
|
|
libicuuc
|
|
|
|
if [ $effectiveTargetArchitecture == x86_gcc2 ]; then
|
|
fixPkgconfig
|
|
|
|
# Update icu-config to point to the develop/lib dir
|
|
fixDevelopLibDirReferences \
|
|
$binDir/icu-config
|
|
|
|
# Rename the data/icu directory when built for the secondary architecture,
|
|
# so that it doesn't clash with the primary package's.
|
|
if [ -n "$secondaryArchSuffix" ]; then
|
|
mv $dataDir/icu $dataDir/icu$secondaryArchSuffix
|
|
# TODO: The icu-config, the Makefile.inc, and possibly other files need
|
|
# to be adjusted as well. They are probably also not quite correct for
|
|
# the primary architecture (lib vs. develop/lib).
|
|
fi
|
|
|
|
# devel package
|
|
packageEntries devel \
|
|
$developDir \
|
|
$dataDir/icu$secondaryArchSuffix \
|
|
$libDir/icu \
|
|
$binDir/icu-config \
|
|
$manDir/man1/icu-config.1
|
|
else
|
|
# No devel package for other architectures
|
|
rm -rf $developDir \
|
|
$dataDir/icu \
|
|
$libDir/icu \
|
|
$binDir/icu-config \
|
|
$manDir/man1/icu-config.1
|
|
fi
|
|
|
|
# tools package
|
|
if [ -z "$secondaryArchSuffix" ]; then
|
|
packageEntries tools \
|
|
$binDir \
|
|
$manDir
|
|
else
|
|
rm -r $binDir $manDir
|
|
fi
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
cd source
|
|
make check
|
|
}
|