Skip to content

Commit 65d8183

Browse files
derickrkrakjoe
authored andcommitted
Use pkg-config for ICU, as the old icu-config has been deprecated
1 parent fabade1 commit 65d8183

File tree

1 file changed

+66
-32
lines changed

1 file changed

+66
-32
lines changed

acinclude.m4

Lines changed: 66 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2212,45 +2212,79 @@ AC_DEFUN([PHP_SETUP_ICU],[
22122212
PHP_ICU_DIR=DEFAULT
22132213
fi
22142214
2215-
if test "$PHP_ICU_DIR" = "DEFAULT"; then
2216-
dnl Try to find icu-config
2217-
AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
2218-
else
2219-
ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
2220-
fi
2221-
22222215
AC_MSG_CHECKING([for location of ICU headers and libraries])
2216+
found_icu=no
22232217
2224-
dnl Trust icu-config to know better what the install prefix is..
2225-
icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
2226-
if test "$?" != "0" || test -z "$icu_install_prefix"; then
2227-
AC_MSG_RESULT([not found])
2228-
AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
2229-
else
2230-
AC_MSG_RESULT([$icu_install_prefix])
2218+
dnl First try to find pkg-config
2219+
if test -z "$PKG_CONFIG"; then
2220+
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
2221+
fi
22312222
2232-
dnl Check ICU version
2233-
AC_MSG_CHECKING([for ICU 4.0 or greater])
2234-
icu_version_full=`$ICU_CONFIG --version`
2235-
ac_IFS=$IFS
2236-
IFS="."
2237-
set $icu_version_full
2238-
IFS=$ac_IFS
2239-
icu_version=`expr [$]1 \* 1000 + [$]2`
2240-
AC_MSG_RESULT([found $icu_version_full])
2223+
dnl If pkg-config is found try using it
2224+
if test "$PHP_ICU_DIR" = "DEFAULT" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists icu-uc icu-io icu-i18n; then
2225+
if $PKG_CONFIG --atleast-version=40 icu-uc; then
2226+
found_icu=yes
2227+
icu_version_full=`$PKG_CONFIG --modversion icu-uc`
2228+
ac_IFS=$IFS
2229+
IFS="."
2230+
set $icu_version_full
2231+
IFS=$ac_IFS
2232+
icu_version=`expr [$]1 \* 1000 + [$]2`
2233+
AC_MSG_RESULT([found $icu_version_full])
2234+
2235+
ICU_LIBS=`$PKG_CONFIG --libs icu-uc icu-io icu-i18n`
2236+
ICU_INCS=`$PKG_CONFIG --cflags-only-I icu-uc icu-io icu-i18n`
2237+
ICU_CXXFLAGS="-DU_USING_ICU_NAMESPACE=1"
2238+
2239+
AC_MSG_RESULT([found $ICU_VERSION])
2240+
2241+
PHP_EVAL_LIBLINE($ICU_LIBS, $1)
2242+
PHP_EVAL_INCLINE($ICU_INCS)
2243+
else
2244+
AC_MSG_ERROR([ICU version 4.0 or later required.])
2245+
fi
2246+
fi
22412247
2242-
if test "$icu_version" -lt "4000"; then
2243-
AC_MSG_ERROR([ICU version 4.0 or later is required])
2248+
dnl If pkg-config fails for some reason, revert to the old method
2249+
if test "$found_icu" = "no"; then
2250+
if test "$PHP_ICU_DIR" = "DEFAULT"; then
2251+
dnl Try to find icu-config
2252+
AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
2253+
else
2254+
ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
22442255
fi
22452256
2246-
ICU_VERSION=$icu_version
2247-
ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
2248-
ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
2249-
PHP_EVAL_INCLINE($ICU_INCS)
2250-
PHP_EVAL_LIBLINE($ICU_LIBS, $1)
2257+
dnl Trust icu-config to know better what the install prefix is..
2258+
icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
2259+
if test "$?" != "0" || test -z "$icu_install_prefix"; then
2260+
AC_MSG_RESULT([not found])
2261+
AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
2262+
else
2263+
AC_MSG_RESULT([$icu_install_prefix])
2264+
2265+
dnl Check ICU version
2266+
AC_MSG_CHECKING([for ICU 4.0 or greater])
2267+
icu_version_full=`$ICU_CONFIG --version`
2268+
ac_IFS=$IFS
2269+
IFS="."
2270+
set $icu_version_full
2271+
IFS=$ac_IFS
2272+
icu_version=`expr [$]1 \* 1000 + [$]2`
2273+
AC_MSG_RESULT([found $icu_version_full])
2274+
2275+
if test "$icu_version" -lt "4000"; then
2276+
AC_MSG_ERROR([ICU version 4.0 or later is required])
2277+
fi
22512278
2252-
ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
2253-
ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1"
2279+
ICU_VERSION=$icu_version
2280+
ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
2281+
ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
2282+
PHP_EVAL_INCLINE($ICU_INCS)
2283+
PHP_EVAL_LIBLINE($ICU_LIBS, $1)
2284+
2285+
ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
2286+
ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1"
2287+
fi
22542288
fi
22552289
])
22562290

0 commit comments

Comments
 (0)