blob: f3638238e70d17980c40da9cdb39eb8c8dceffef [file] [log] [blame]
# Maintainer: Alexey Pavlov <Alexpux@gmail.com>
# Contributor: Ray Donnelly <mingw.android@gmail.com>
# Contributor: wirx6 <wirx654@gmail.com>
_realname=icu
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug-libs")
pkgver=68.2
pkgrel=3
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
pkgdesc="International Components for Unicode library (mingw-w64)"
url="http://site.icu-project.org/home/"
license=('custom:icu')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
# There's no point adding 'debug' to options as both
# debug and release packages are built regardless.
options=('!buildflags' 'staticlibs' 'strip')
source=(#"http://download.icu-project.org/files/icu4c/${pkgver}/icu4c-${pkgver//./_}-src.tgz"
https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-src.tgz
0011-sbin-dir.mingw.patch
0012-libprefix.mingw.patch
0014-mingwize-pkgdata.mingw.patch
0015-debug.mingw.patch
0016-icu-pkgconfig.patch
0017-icu-config-versioning.patch
#0020-workaround-missing-locale.patch
0021-mingw-static-libraries-without-s.patch
0023-fix-twice-include-platform_make_fragment.patch
0024-mingw-no-Bsymbolic.patch)
sha256sums=('c79193dee3907a2199b8296a93b52c5cb74332c26f3d167269487680d479d625'
'4f4787caeccf70607cf0cbde0c005f05f5c6de1543265a927839122405b4054f'
'e7ecdafe85e18a4a4b5f29bbfde38776521a848e5b65089a2379b90e59f1592d'
'a131b64afbe45ad30d877973f7ff271044ef27409a506c56555663aa271ab011'
'0181f9ff8b7dd0a423869d8772da0a4feea64188347eb0dee7eb059aea92131c'
'87ebe8962f8c387714f2a697a664a0c49aed2331b988548069d0c211abc36e05'
'3cd5a7b6ca87aae3b53c246286e1b4cee6639b3fec69831f8a1f6930cd92c6c3'
'd8612f40b1731d9a94290afcf80c896184a2f15b8ae8f23b3643c64f6cabfa2f'
'517a4b2308c5d7662768ece12b01b457b83a2cd80d8bf407e593e6412dfbde92'
'3a62ca57c86d0629bd62180f46ac6d57171f6441a18438f140b232c1df4fd4fa')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
msg2 "Applying $1"
patch -Nbp1 -i "${srcdir}"/$1
}
del_file_exists() {
for _fname in "$@"
do
if [ -f $_fname ]; then
rm -rf $_fname
fi
done
}
# =========================================== #
prepare() {
cd "${srcdir}/icu"
apply_patch_with_msg 0011-sbin-dir.mingw.patch
apply_patch_with_msg 0012-libprefix.mingw.patch
apply_patch_with_msg 0014-mingwize-pkgdata.mingw.patch
apply_patch_with_msg 0015-debug.mingw.patch
apply_patch_with_msg 0016-icu-pkgconfig.patch
apply_patch_with_msg 0017-icu-config-versioning.patch
apply_patch_with_msg 0021-mingw-static-libraries-without-s.patch
apply_patch_with_msg 0023-fix-twice-include-platform_make_fragment.patch
apply_patch_with_msg 0024-mingw-no-Bsymbolic.patch
cd source
autoreconf -vfi
}
build() {
local -a extra_config
CXXFLAGS+=" -DU_USE_STRTOD_L=0" # breaks on Windows XP
#CXXFLAGS+=" -D_WIN32_WINNT=0x0601"
cd "${srcdir}/icu/"
for _variant in debug release; do
[[ -d build-${CARCH}-${_variant} ]] && rm -rf build-${CARCH}-${_variant}
if [ "${_variant}" = "debug" ]; then
extra_config=( --enable-debug )
else
extra_config=( --enable-release )
fi
cp -rf source build-${CARCH}-${_variant}
pushd build-${CARCH}-${_variant}
./configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--target=${MINGW_CHOST} \
--disable-rpath \
--enable-shared \
--enable-static \
--with-data-packaging=dll \
"${extra_config[@]}"
make -j1
popd
done
}
check() {
for _variant in debug release; do
pushd "${srcdir}/icu/build-${CARCH}-${_variant}"
PATH=${srcdir}/icu/build-${CARCH}/bin:${srcdir}/icu/build-${CARCH}/lib:$PATH \
make V=1 -k check || true
popd
done
}
package_icu() {
pushd "${srcdir}/icu/build-${CARCH}-release"
make install DESTDIR="${pkgdir}" RM="rm -rf"
#mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/
mv "${pkgdir}${MINGW_PREFIX}"/bin/*.a "${pkgdir}${MINGW_PREFIX}"/lib/
#pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null
# # remove unversioned DLL symlinks
# find . -regex "[^0-9]+\.dll" -exec rm -rf {} \;
#popd > /dev/null
}
package_icu-debug-libs() {
options=('debug' '!strip')
pushd "${srcdir}/icu/build-${CARCH}-debug"
make install DESTDIR="${pkgdir}" RM="rm -rf"
#mv "${pkgdir}${MINGW_PREFIX}"/lib/*.dll "${pkgdir}${MINGW_PREFIX}"/bin/
mv "${pkgdir}${MINGW_PREFIX}"/bin/*.a "${pkgdir}${MINGW_PREFIX}"/lib/
#pushd "${pkgdir}${MINGW_PREFIX}"/bin > /dev/null
# # remove unversioned DLL symlinks
# find . -regex "[^0-9]+\.dll" -exec rm -rf {} \;
#popd > /dev/null
# Remove bits that are also in the main package.
# TODO :: Maybe move the pkg-config files to 'd' suffixed variants?
rm -rf "${pkgdir}${MINGW_PREFIX}"/{include,sbin,share,lib/pkgconfig}
rm -rf "${pkgdir}${MINGW_PREFIX}"/bin/*.exe
rm -rf "${pkgdir}${MINGW_PREFIX}"/bin/icu-config
}
# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :
# generate wrappers
for _name in "${pkgname[@]}"; do
_short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
_func="$(declare -f "${_short}")"
eval "${_func/#${_short}/package_${_name}}"
done
# template end;