Use icu-i18n and icu-uc to collect the names of the ICU libraries, use --libs-only-l

This commit is contained in:
Slava Andrejev
2023-01-14 05:41:14 -08:00
parent b2aa2b4ff5
commit 118ed69b6d

View File

@@ -111,10 +111,19 @@ setb2args() {
# Extract names of ICU libraries from the pkg-config configuration file.
# Note that the acual order of the libraries in the array is irrelevant.
# They are all linked in the same way.
local -a icu_i18n_libs
local -a icu_uc_libs
IFS=" " read -r -a icu_i18n_libs <<< "$(pkgconf --libs-only-l icu-i18n)"
IFS=" " read -r -a icu_uc_libs <<< "$(pkgconf --libs-only-l icu-uc)"
local -a icu_libs
IFS=" " read -r -a icu_libs <<< "$(pkgconf --libs icu-i18n)"
icu_libs=("${icu_i18n_libs[@]}" "${icu_uc_libs[@]}")
local -a icu_libs_unique
while IFS= read -r -d '' x
do
icu_libs_unique+=("$x")
done < <(printf "%s\0" "${icu_libs[@]}" | sort -uz)
# Remove -l prefix.
icu_libs=("${icu_libs[@]/#-l/}")
icu_libs=("${icu_libs_unique[@]/#-l/}")
b2args="address-model=${_model} \
link=shared,static \
@@ -130,9 +139,9 @@ setb2args() {
--layout=tagged-1.66 \
-sHAVE_ICU=1 \
-sICU_PATH=${MINGW_PREFIX} \
-sICU_ICUUC_NAME=${icu_libs[1]} \
-sICU_ICUDT_NAME=${icu_libs[2]} \
-sICU_ICUIN_NAME=${icu_libs[0]} \
-sICU_ICUDT_NAME=${icu_libs[0]} \
-sICU_ICUIN_NAME=${icu_libs[1]} \
-sICU_ICUUC_NAME=${icu_libs[2]} \
-sICONV_PATH=${MINGW_PREFIX} \
-sICONV_LINK=\"-L${MINGW_PREFIX}/lib -liconv\" \
-sNO_BZIP2 \