aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch
blob: 2258c4c7fa4cce100ef527fbc8d13bb6af8b1947 (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
From 03fecab78f9fa747ad8ab3484e7ca00c0148321d Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Sun, 28 Apr 2019 16:45:02 +0800
Subject: [PATCH] From: Hugh McMaster <hugh.mcmaster@outlook.com> Date: Wed, 5
 Dec 2018 23:27:30 +1100 Subject: ext/intl: Use pkg-config to detect icu

The developers of icu recommend using pkg-config to detect icu,
because icu-config is deprecated.

Upstream-Status: Pending

update to version 7.3.4
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 acinclude.m4       | 95 ++++++------------------------------------------------
 ext/intl/config.m4 | 16 ++++-----
 2 files changed, 15 insertions(+), 96 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 7d77c33..86b0ecc 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2158,92 +2158,15 @@ dnl
 dnl Common setup macro for ICU
 dnl
 AC_DEFUN([PHP_SETUP_ICU],[
-  PHP_ARG_WITH(icu-dir,,
-  [  --with-icu-dir=DIR      Specify where ICU libraries and headers can be found], DEFAULT, no)
-
-  if test "$PHP_ICU_DIR" = "no"; then
-    PHP_ICU_DIR=DEFAULT
-  fi
-
-  AC_MSG_CHECKING([for location of ICU headers and libraries])
-  found_icu=no
-
-  dnl First try to find pkg-config
-  if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-  fi
-
-  dnl If pkg-config is found try using it
-  if test "$PHP_ICU_DIR" = "DEFAULT" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists icu-uc icu-io icu-i18n; then
-    if $PKG_CONFIG --atleast-version=40 icu-uc; then
-      found_icu=yes
-      icu_version_full=`$PKG_CONFIG --modversion icu-uc`
-      ac_IFS=$IFS
-      IFS="."
-      set $icu_version_full
-      IFS=$ac_IFS
-      icu_version=`expr [$]1 \* 1000 + [$]2`
-      AC_MSG_RESULT([found $icu_version_full])
-
-      ICU_LIBS=`$PKG_CONFIG --libs icu-uc icu-io icu-i18n`
-      ICU_INCS=`$PKG_CONFIG --cflags-only-I icu-uc icu-io icu-i18n`
-      ICU_CXXFLAGS="-DU_USING_ICU_NAMESPACE=1"
-
-      AC_MSG_RESULT([found $ICU_VERSION])
-
-      PHP_EVAL_LIBLINE($ICU_LIBS, $1)
-      PHP_EVAL_INCLINE($ICU_INCS)
-    else
-      AC_MSG_ERROR([ICU version 4.0 or later required.])
-    fi
-  fi
-
-  dnl If pkg-config fails for some reason, revert to the old method
-  if test "$found_icu" = "no"; then
-    if test "$PHP_ICU_DIR" = "DEFAULT"; then
-      dnl Try to find icu-config
-      AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
-    else
-      ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
-    fi
-
-    dnl Trust icu-config to know better what the install prefix is..
-    icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
-    if test "$?" != "0" || test -z "$icu_install_prefix"; then
-      AC_MSG_RESULT([not found])
-      AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
-    else
-      AC_MSG_RESULT([$icu_install_prefix])
-
-      dnl Check ICU version
-      AC_MSG_CHECKING([for ICU 4.0 or greater])
-      icu_version_full=`$ICU_CONFIG --version`
-      ac_IFS=$IFS
-      IFS="."
-      set $icu_version_full
-      IFS=$ac_IFS
-      icu_version=`expr [$]1 \* 1000 + [$]2`
-      AC_MSG_RESULT([found $icu_version_full])
-
-      if test "$icu_version" -lt "4000"; then
-        AC_MSG_ERROR([ICU version 4.0 or later is required])
-      fi
-
-      ICU_VERSION=$icu_version
-      ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
-      ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
-      PHP_EVAL_INCLINE($ICU_INCS)
-      PHP_EVAL_LIBLINE($ICU_LIBS, $1)
-
-      ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
-      if test "$icu_version" -ge "49000"; then
-        ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
-        ICU_CFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
-      fi
-      if test "$icu_version" -ge "60000"; then
-        ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
-      fi
-    fi
+  PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
+  PHP_EVAL_INCLINE($ICU_CFLAGS)
+  PHP_EVAL_LIBLINE($ICU_LIBS, $1)
+  
+  ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
+  ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
+  
+  if $PKG_CONFIG icu-io --atleast-version=60; then
+    ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
   fi
 ])
 
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
index 4b9f469..fdae88a 100644
--- a/ext/intl/config.m4
+++ b/ext/intl/config.m4
@@ -9,15 +9,7 @@ if test "$PHP_INTL" != "no"; then
   PHP_SETUP_ICU(INTL_SHARED_LIBADD)
   PHP_SUBST(INTL_SHARED_LIBADD)
   PHP_REQUIRE_CXX()
-  INTL_COMMON_FLAGS="$ICU_INCS $ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
-  if test "$icu_version" -ge "4002"; then
-    icu_spoof_src=" spoofchecker/spoofchecker_class.c \
-    spoofchecker/spoofchecker.c\
-    spoofchecker/spoofchecker_create.c\
-    spoofchecker/spoofchecker_main.c"
-  else
-    icu_spoof_src=""
-  fi
+  INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
   PHP_NEW_EXTENSION(intl, php_intl.c \
     intl_error.c \
     intl_convert.c \
@@ -68,7 +60,11 @@ if test "$PHP_INTL" != "no"; then
     transliterator/transliterator_methods.c \
     uchar/uchar.c \
     idn/idn.c \
-    $icu_spoof_src, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
+    spoofchecker/spoofchecker_class.c \
+    spoofchecker/spoofchecker.c\
+    spoofchecker/spoofchecker_create.c\
+    spoofchecker/spoofchecker_main.c \
+    , $ext_shared,,$INTL_COMMON_FLAGS,cxx)
 
   PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \
     common/common_enum.cpp \
-- 
2.7.4