Skip to content

Commit 3fdd3ed

Browse files
devnexeniluuu1994
authored andcommitted
backporting C++17 detection support for recent icu4c releases.
1 parent 35936bf commit 3fdd3ed

5 files changed

+33
-22
lines changed

ext/intl/config.m4

+10-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,16 @@ if test "$PHP_INTL" != "no"; then
8585
breakiterator/codepointiterator_methods.cpp"
8686

8787
PHP_REQUIRE_CXX()
88-
PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX)
88+
89+
AC_MSG_CHECKING([if intl requires -std=gnu++17])
90+
AS_IF([$PKG_CONFIG icu-uc --atleast-version=74],[
91+
AC_MSG_RESULT([yes])
92+
PHP_CXX_COMPILE_STDCXX(17, mandatory, PHP_INTL_STDCXX)
93+
],[
94+
AC_MSG_RESULT([no])
95+
PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX)
96+
])
97+
8998
PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS"
9099
case $host_alias in
91100
*cygwin*) PHP_INTL_CXX_FLAGS="$PHP_INTL_CXX_FLAGS -D_POSIX_C_SOURCE=200809L"

ext/intl/tests/bug62070_3.phpt

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Bug #62070: Collator::getSortKey() returns garbage
44
intl
55
--SKIPIF--
66
<?php if (version_compare(INTL_ICU_VERSION, '62.1') < 0) die('skip for ICU >= 62.1'); ?>
7+
<?php if (version_compare(INTL_ICU_VERSION, '76.1') >= 0) die('skip for ICU < 76.1'); ?>
78
--FILE--
89
<?php
910
$s1 = 'Hello';

ext/intl/tests/collator_get_sort_key_variant7.phpt

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ collator_get_sort_key() icu >= 62.1
44
intl
55
--SKIPIF--
66
<?php if (version_compare(INTL_ICU_VERSION, '62.1') < 0) die('skip for ICU >= 62.1'); ?>
7+
<?php if (version_compare(INTL_ICU_VERSION, '76.1') >= 0) die('skip for ICU < 76.1'); ?>
78
--FILE--
89
<?php
910

ext/intl/tests/locale_get_display_name8.phpt

+12-12
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ disp_locale=fr : display_name=slovène #Italie, NEDIS_KIRTI#
112112
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_KIRTI#
113113
-----------------
114114
locale='sl_IT_nedis-a-kirti-x-xyz'
115-
disp_locale=en : display_name=Slovenian #Italy, NEDIS_A_KIRTI_X_XYZ#
116-
disp_locale=fr : display_name=slovène #Italie, NEDIS_A_KIRTI_X_XYZ#
117-
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_A_KIRTI_X_XYZ#
115+
disp_locale=en : display_name=Slovenian #Italy, NEDIS_A_KIRTI(_X_XYZ)?#
116+
disp_locale=fr : display_name=slovène #Italie, NEDIS_A_KIRTI(_X_XYZ)?#
117+
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_A_KIRTI(_X_XYZ)?#
118118
-----------------
119119
locale='sl_IT_rozaj'
120120
disp_locale=en : display_name=Slovenian #Italy, Resian#
@@ -317,14 +317,14 @@ disp_locale=fr : display_name=anglais #États-Unis, attribute=islamcal#
317317
disp_locale=de : display_name=Englisch #Vereinigte Staaten, attribute=islamcal#
318318
-----------------
319319
locale='zh-CN-a-myExt-x-private'
320-
disp_locale=en : display_name=Chinese #China, a=myext, Private-Use=private#
321-
disp_locale=fr : display_name=chinois #Chine, a=myext, usage privé=private#
322-
disp_locale=de : display_name=Chinesisch #China, a=myext, Privatnutzung=private#
320+
disp_locale=en : display_name=Chinese #China(, A_MYEXT(_X_PRIVATE)?)?, a=myext, Private-Use=private#
321+
disp_locale=fr : display_name=chinois #Chine(, A_MYEXT(_X_PRIVATE)?)?, a=myext, usage privé=private#
322+
disp_locale=de : display_name=Chinesisch #China(, A_MYEXT(_X_PRIVATE)?)?, a=myext, Privatnutzung=private#
323323
-----------------
324324
locale='en-a-myExt-b-another'
325-
disp_locale=en : display_name=English #a=myext, b=another#
326-
disp_locale=fr : display_name=anglais #a=myext, b=another#
327-
disp_locale=de : display_name=Englisch #a=myext, b=another#
325+
disp_locale=en : display_name=English #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
326+
disp_locale=fr : display_name=anglais #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
327+
disp_locale=de : display_name=Englisch #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
328328
-----------------
329329
locale='de-419-DE'
330330
disp_locale=en : display_name=German #Latin America, DE#
@@ -337,7 +337,7 @@ disp_locale=fr : display_name=a #Allemagne#
337337
disp_locale=de : display_name=a #Deutschland#
338338
-----------------
339339
locale='ar-a-aaa-b-bbb-a-ccc'
340-
disp_locale=en : display_name=Arabic #a=aaa, b=bbb#
341-
disp_locale=fr : display_name=arabe #a=aaa, b=bbb#
342-
disp_locale=de : display_name=Arabisch #a=aaa, b=bbb#
340+
disp_locale=en : display_name=Arabic #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
341+
disp_locale=fr : display_name=arabe #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
342+
disp_locale=de : display_name=Arabisch #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
343343
-----------------

ext/intl/tests/locale_get_display_variant2.phpt

+9-9
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,14 @@ disp_locale=fr : display_variant=
248248
disp_locale=de : display_variant=
249249
-----------------
250250
locale='zh-CN-a-myExt-x-private'
251-
disp_locale=en : display_variant=
252-
disp_locale=fr : display_variant=
253-
disp_locale=de : display_variant=
251+
disp_locale=en : display_variant=(A_MYEXT(_X_PRIVATE)?)?
252+
disp_locale=fr : display_variant=(A_MYEXT(_X_PRIVATE)?)?
253+
disp_locale=de : display_variant=(A_MYEXT(_X_PRIVATE)?)?
254254
-----------------
255255
locale='en-a-myExt-b-another'
256-
disp_locale=en : display_variant=(MYEXT_B_ANOTHER)?
257-
disp_locale=fr : display_variant=(MYEXT_B_ANOTHER)?
258-
disp_locale=de : display_variant=(MYEXT_B_ANOTHER)?
256+
disp_locale=en : display_variant=((A_)?MYEXT_B_ANOTHER)?
257+
disp_locale=fr : display_variant=((A_)?MYEXT_B_ANOTHER)?
258+
disp_locale=de : display_variant=((A_)?MYEXT_B_ANOTHER)?
259259
-----------------
260260
locale='de-419-DE'
261261
disp_locale=en : display_variant=DE
@@ -268,7 +268,7 @@ disp_locale=fr : display_variant=
268268
disp_locale=de : display_variant=
269269
-----------------
270270
locale='ar-a-aaa-b-bbb-a-ccc'
271-
disp_locale=en : display_variant=(AAA_B_BBB_A_CCC)?
272-
disp_locale=fr : display_variant=(AAA_B_BBB_A_CCC)?
273-
disp_locale=de : display_variant=(AAA_B_BBB_A_CCC)?
271+
disp_locale=en : display_variant=((A_)?AAA_B_BBB_A_CCC)?
272+
disp_locale=fr : display_variant=((A_)?AAA_B_BBB_A_CCC)?
273+
disp_locale=de : display_variant=((A_)?AAA_B_BBB_A_CCC)?
274274
-----------------

0 commit comments

Comments
 (0)