Bug 1284406 part 3 - Export ICU headers in include/unicode. r=glandium draft
authorXidorn Quan <me@upsuper.org>
Thu, 07 Jul 2016 10:19:13 +1000
changeset 388834 2b5245c51288f23c9e4f1aeeff292e7b722110f0
parent 388833 46edb316cd7ced02794cd99037aca7a47e26d457
child 525609 ec13eb916670c2976ba22c8ab9a82d2a54a538c9
push id23245
push userxquan@mozilla.com
push dateMon, 18 Jul 2016 05:36:23 +0000
reviewersglandium
bugs1284406
milestone50.0a1
Bug 1284406 part 3 - Export ICU headers in include/unicode. r=glandium MozReview-Commit-ID: FuwAgEGjhxm
build/autoconf/icu.m4
config/external/icu/common/moz.build
config/external/icu/common/sources.mozbuild
config/external/icu/i18n/moz.build
config/external/icu/i18n/sources.mozbuild
config/external/icu/stubdata/moz.build
dom/indexedDB/moz.build
gfx/thebes/moz.build
intl/build/moz.build
intl/icu_sources_data.py
intl/locale/mac/moz.build
intl/unicharutil/util/internal/moz.build
intl/unicharutil/util/moz.build
js/src/moz.build
layout/forms/moz.build
netwerk/dns/moz.build
xpcom/build/moz.build
--- a/build/autoconf/icu.m4
+++ b/build/autoconf/icu.m4
@@ -11,21 +11,20 @@ ICU_LIB_NAMES=
 MOZ_SYSTEM_ICU=
 MOZ_ARG_WITH_BOOL(system-icu,
 [  --with-system-icu
                           Use system ICU (located with pkgconfig)],
     MOZ_SYSTEM_ICU=1)
 
 if test -n "$MOZ_SYSTEM_ICU"; then
     PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
-else
-    MOZ_ICU_INCLUDES="/intl/icu/source/common /intl/icu/source/i18n"
+    CFLAGS="$CFLAGS $MOZ_ICU_CFLAGS"
+    CXXFLAGS="$CXXFLAGS $MOZ_ICU_CFLAGS"
 fi
 
-AC_SUBST_LIST(MOZ_ICU_INCLUDES)
 AC_SUBST(MOZ_SYSTEM_ICU)
 
 MOZ_ARG_WITH_STRING(intl-api,
 [  --with-intl-api, --with-intl-api=build, --without-intl-api
     Determine the status of the ECMAScript Internationalization API.  The first
     (or lack of any of these) builds and exposes the API.  The second builds it
     but doesn't use ICU or expose the API to script.  The third doesn't build
     ICU at all.],
--- a/config/external/icu/common/moz.build
+++ b/config/external/icu/common/moz.build
@@ -12,12 +12,12 @@ if CONFIG['OS_TARGET'] == 'Android' and 
         'gabi++'
     ]
 
 DEFINES['U_COMMON_IMPLEMENTATION'] = True
 # This normally gets defined in the SDK but our WINVER is too low.
 #FIXME: should probably stop including mozilla-config.h
 DEFINES['LOCALE_SNAME'] = 0x5c
 
-LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
+LOCAL_INCLUDES += ['/intl/icu/source/i18n']
 
 include('../defs.mozbuild')
 include('sources.mozbuild')
--- a/config/external/icu/common/sources.mozbuild
+++ b/config/external/icu/common/sources.mozbuild
@@ -174,8 +174,97 @@ SOURCES += [
    '/intl/icu/source/common/utrie2_builder.cpp',
    '/intl/icu/source/common/uts46.cpp',
    '/intl/icu/source/common/utypes.c',
    '/intl/icu/source/common/uvector.cpp',
    '/intl/icu/source/common/uvectr32.cpp',
    '/intl/icu/source/common/uvectr64.cpp',
    '/intl/icu/source/common/wintz.c',
 ]
+
+EXPORTS.unicode += [
+   '/intl/icu/source/common/unicode/appendable.h',
+   '/intl/icu/source/common/unicode/brkiter.h',
+   '/intl/icu/source/common/unicode/bytestream.h',
+   '/intl/icu/source/common/unicode/bytestrie.h',
+   '/intl/icu/source/common/unicode/bytestriebuilder.h',
+   '/intl/icu/source/common/unicode/caniter.h',
+   '/intl/icu/source/common/unicode/chariter.h',
+   '/intl/icu/source/common/unicode/dbbi.h',
+   '/intl/icu/source/common/unicode/docmain.h',
+   '/intl/icu/source/common/unicode/dtintrv.h',
+   '/intl/icu/source/common/unicode/enumset.h',
+   '/intl/icu/source/common/unicode/errorcode.h',
+   '/intl/icu/source/common/unicode/filteredbrk.h',
+   '/intl/icu/source/common/unicode/icudataver.h',
+   '/intl/icu/source/common/unicode/icuplug.h',
+   '/intl/icu/source/common/unicode/idna.h',
+   '/intl/icu/source/common/unicode/listformatter.h',
+   '/intl/icu/source/common/unicode/localpointer.h',
+   '/intl/icu/source/common/unicode/locid.h',
+   '/intl/icu/source/common/unicode/messagepattern.h',
+   '/intl/icu/source/common/unicode/normalizer2.h',
+   '/intl/icu/source/common/unicode/normlzr.h',
+   '/intl/icu/source/common/unicode/parseerr.h',
+   '/intl/icu/source/common/unicode/parsepos.h',
+   '/intl/icu/source/common/unicode/platform.h',
+   '/intl/icu/source/common/unicode/ptypes.h',
+   '/intl/icu/source/common/unicode/putil.h',
+   '/intl/icu/source/common/unicode/rbbi.h',
+   '/intl/icu/source/common/unicode/rep.h',
+   '/intl/icu/source/common/unicode/resbund.h',
+   '/intl/icu/source/common/unicode/schriter.h',
+   '/intl/icu/source/common/unicode/std_string.h',
+   '/intl/icu/source/common/unicode/strenum.h',
+   '/intl/icu/source/common/unicode/stringpiece.h',
+   '/intl/icu/source/common/unicode/stringtriebuilder.h',
+   '/intl/icu/source/common/unicode/symtable.h',
+   '/intl/icu/source/common/unicode/ubidi.h',
+   '/intl/icu/source/common/unicode/ubrk.h',
+   '/intl/icu/source/common/unicode/ucasemap.h',
+   '/intl/icu/source/common/unicode/ucat.h',
+   '/intl/icu/source/common/unicode/uchar.h',
+   '/intl/icu/source/common/unicode/ucharstrie.h',
+   '/intl/icu/source/common/unicode/ucharstriebuilder.h',
+   '/intl/icu/source/common/unicode/uchriter.h',
+   '/intl/icu/source/common/unicode/uclean.h',
+   '/intl/icu/source/common/unicode/ucnv.h',
+   '/intl/icu/source/common/unicode/ucnv_cb.h',
+   '/intl/icu/source/common/unicode/ucnv_err.h',
+   '/intl/icu/source/common/unicode/ucnvsel.h',
+   '/intl/icu/source/common/unicode/uconfig.h',
+   '/intl/icu/source/common/unicode/udata.h',
+   '/intl/icu/source/common/unicode/uenum.h',
+   '/intl/icu/source/common/unicode/uidna.h',
+   '/intl/icu/source/common/unicode/uiter.h',
+   '/intl/icu/source/common/unicode/ulistformatter.h',
+   '/intl/icu/source/common/unicode/uloc.h',
+   '/intl/icu/source/common/unicode/umachine.h',
+   '/intl/icu/source/common/unicode/umisc.h',
+   '/intl/icu/source/common/unicode/unifilt.h',
+   '/intl/icu/source/common/unicode/unifunct.h',
+   '/intl/icu/source/common/unicode/unimatch.h',
+   '/intl/icu/source/common/unicode/uniset.h',
+   '/intl/icu/source/common/unicode/unistr.h',
+   '/intl/icu/source/common/unicode/unorm.h',
+   '/intl/icu/source/common/unicode/unorm2.h',
+   '/intl/icu/source/common/unicode/uobject.h',
+   '/intl/icu/source/common/unicode/urename.h',
+   '/intl/icu/source/common/unicode/urep.h',
+   '/intl/icu/source/common/unicode/ures.h',
+   '/intl/icu/source/common/unicode/uscript.h',
+   '/intl/icu/source/common/unicode/uset.h',
+   '/intl/icu/source/common/unicode/usetiter.h',
+   '/intl/icu/source/common/unicode/ushape.h',
+   '/intl/icu/source/common/unicode/usprep.h',
+   '/intl/icu/source/common/unicode/ustring.h',
+   '/intl/icu/source/common/unicode/ustringtrie.h',
+   '/intl/icu/source/common/unicode/utext.h',
+   '/intl/icu/source/common/unicode/utf.h',
+   '/intl/icu/source/common/unicode/utf16.h',
+   '/intl/icu/source/common/unicode/utf32.h',
+   '/intl/icu/source/common/unicode/utf8.h',
+   '/intl/icu/source/common/unicode/utf_old.h',
+   '/intl/icu/source/common/unicode/utrace.h',
+   '/intl/icu/source/common/unicode/utypes.h',
+   '/intl/icu/source/common/unicode/uvernum.h',
+   '/intl/icu/source/common/unicode/uversion.h',
+]
--- a/config/external/icu/i18n/moz.build
+++ b/config/external/icu/i18n/moz.build
@@ -4,12 +4,12 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 Library('icui18n')
 FINAL_LIBRARY = 'icu'
 
 DEFINES['U_I18N_IMPLEMENTATION'] = True
 
-LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
+LOCAL_INCLUDES += ['/intl/icu/source/common']
 
 include('../defs.mozbuild')
 include('sources.mozbuild')
--- a/config/external/icu/i18n/sources.mozbuild
+++ b/config/external/icu/i18n/sources.mozbuild
@@ -194,8 +194,92 @@ SOURCES += [
    '/intl/icu/source/i18n/vzone.cpp',
    '/intl/icu/source/i18n/windtfmt.cpp',
    '/intl/icu/source/i18n/winnmfmt.cpp',
    '/intl/icu/source/i18n/wintzimpl.cpp',
    '/intl/icu/source/i18n/zonemeta.cpp',
    '/intl/icu/source/i18n/zrule.cpp',
    '/intl/icu/source/i18n/ztrans.cpp',
 ]
+
+EXPORTS.unicode += [
+   '/intl/icu/source/i18n/unicode/alphaindex.h',
+   '/intl/icu/source/i18n/unicode/basictz.h',
+   '/intl/icu/source/i18n/unicode/calendar.h',
+   '/intl/icu/source/i18n/unicode/choicfmt.h',
+   '/intl/icu/source/i18n/unicode/coleitr.h',
+   '/intl/icu/source/i18n/unicode/coll.h',
+   '/intl/icu/source/i18n/unicode/compactdecimalformat.h',
+   '/intl/icu/source/i18n/unicode/curramt.h',
+   '/intl/icu/source/i18n/unicode/currpinf.h',
+   '/intl/icu/source/i18n/unicode/currunit.h',
+   '/intl/icu/source/i18n/unicode/datefmt.h',
+   '/intl/icu/source/i18n/unicode/dcfmtsym.h',
+   '/intl/icu/source/i18n/unicode/decimfmt.h',
+   '/intl/icu/source/i18n/unicode/dtfmtsym.h',
+   '/intl/icu/source/i18n/unicode/dtitvfmt.h',
+   '/intl/icu/source/i18n/unicode/dtitvinf.h',
+   '/intl/icu/source/i18n/unicode/dtptngen.h',
+   '/intl/icu/source/i18n/unicode/dtrule.h',
+   '/intl/icu/source/i18n/unicode/fieldpos.h',
+   '/intl/icu/source/i18n/unicode/fmtable.h',
+   '/intl/icu/source/i18n/unicode/format.h',
+   '/intl/icu/source/i18n/unicode/fpositer.h',
+   '/intl/icu/source/i18n/unicode/gender.h',
+   '/intl/icu/source/i18n/unicode/gregocal.h',
+   '/intl/icu/source/i18n/unicode/locdspnm.h',
+   '/intl/icu/source/i18n/unicode/measfmt.h',
+   '/intl/icu/source/i18n/unicode/measunit.h',
+   '/intl/icu/source/i18n/unicode/measure.h',
+   '/intl/icu/source/i18n/unicode/msgfmt.h',
+   '/intl/icu/source/i18n/unicode/numfmt.h',
+   '/intl/icu/source/i18n/unicode/numsys.h',
+   '/intl/icu/source/i18n/unicode/plurfmt.h',
+   '/intl/icu/source/i18n/unicode/plurrule.h',
+   '/intl/icu/source/i18n/unicode/rbnf.h',
+   '/intl/icu/source/i18n/unicode/rbtz.h',
+   '/intl/icu/source/i18n/unicode/regex.h',
+   '/intl/icu/source/i18n/unicode/region.h',
+   '/intl/icu/source/i18n/unicode/reldatefmt.h',
+   '/intl/icu/source/i18n/unicode/scientificnumberformatter.h',
+   '/intl/icu/source/i18n/unicode/search.h',
+   '/intl/icu/source/i18n/unicode/selfmt.h',
+   '/intl/icu/source/i18n/unicode/simpletz.h',
+   '/intl/icu/source/i18n/unicode/smpdtfmt.h',
+   '/intl/icu/source/i18n/unicode/sortkey.h',
+   '/intl/icu/source/i18n/unicode/stsearch.h',
+   '/intl/icu/source/i18n/unicode/tblcoll.h',
+   '/intl/icu/source/i18n/unicode/timezone.h',
+   '/intl/icu/source/i18n/unicode/tmunit.h',
+   '/intl/icu/source/i18n/unicode/tmutamt.h',
+   '/intl/icu/source/i18n/unicode/tmutfmt.h',
+   '/intl/icu/source/i18n/unicode/translit.h',
+   '/intl/icu/source/i18n/unicode/tzfmt.h',
+   '/intl/icu/source/i18n/unicode/tznames.h',
+   '/intl/icu/source/i18n/unicode/tzrule.h',
+   '/intl/icu/source/i18n/unicode/tztrans.h',
+   '/intl/icu/source/i18n/unicode/ucal.h',
+   '/intl/icu/source/i18n/unicode/ucol.h',
+   '/intl/icu/source/i18n/unicode/ucoleitr.h',
+   '/intl/icu/source/i18n/unicode/ucsdet.h',
+   '/intl/icu/source/i18n/unicode/ucurr.h',
+   '/intl/icu/source/i18n/unicode/udat.h',
+   '/intl/icu/source/i18n/unicode/udateintervalformat.h',
+   '/intl/icu/source/i18n/unicode/udatpg.h',
+   '/intl/icu/source/i18n/unicode/udisplaycontext.h',
+   '/intl/icu/source/i18n/unicode/ufieldpositer.h',
+   '/intl/icu/source/i18n/unicode/uformattable.h',
+   '/intl/icu/source/i18n/unicode/ugender.h',
+   '/intl/icu/source/i18n/unicode/uldnames.h',
+   '/intl/icu/source/i18n/unicode/ulocdata.h',
+   '/intl/icu/source/i18n/unicode/umsg.h',
+   '/intl/icu/source/i18n/unicode/unirepl.h',
+   '/intl/icu/source/i18n/unicode/unum.h',
+   '/intl/icu/source/i18n/unicode/unumsys.h',
+   '/intl/icu/source/i18n/unicode/upluralrules.h',
+   '/intl/icu/source/i18n/unicode/uregex.h',
+   '/intl/icu/source/i18n/unicode/uregion.h',
+   '/intl/icu/source/i18n/unicode/usearch.h',
+   '/intl/icu/source/i18n/unicode/uspoof.h',
+   '/intl/icu/source/i18n/unicode/utmscale.h',
+   '/intl/icu/source/i18n/unicode/utrans.h',
+   '/intl/icu/source/i18n/unicode/vtzone.h',
+]
--- a/config/external/icu/stubdata/moz.build
+++ b/config/external/icu/stubdata/moz.build
@@ -5,11 +5,9 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # This builds the ICU stubdata library, since we are shipping ICU
 # data in a separate data file. ICU needs a data symbol to link against
 # even if you're loading its data from a file.
 
 Library('icustubdata')
 
-LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
-
 SOURCES += ['/intl/icu/source/stubdata/stubdata.c']
--- a/dom/indexedDB/moz.build
+++ b/dom/indexedDB/moz.build
@@ -104,12 +104,8 @@ LOCAL_INCLUDES += [
     '/db/sqlite3/src',
     '/dom/base',
     '/dom/storage',
     '/dom/workers',
     '/ipc/glue',
     '/xpcom/build',
     '/xpcom/threads',
 ]
-
-if CONFIG['ENABLE_INTL_API']:
-    CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
@@ -231,19 +231,16 @@ UNIFIED_SOURCES += [
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     UNIFIED_SOURCES += [
         'gfxMacPlatformFontList.mm',
     ]
 
 # We prefer to use ICU for normalization functions, but currently it is only
 # available if we're building with the Intl API enabled:
 if CONFIG['ENABLE_INTL_API']:
-    CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
     USE_LIBS += [
         'icu',
     ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
--- a/intl/build/moz.build
+++ b/intl/build/moz.build
@@ -4,17 +4,15 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 SOURCES += [
     'nsI18nModule.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
 LOCAL_INCLUDES += [
     '../locale',
     '../lwbrk',
     '../strres',
     '../uconv',
     '../unicharutil',
 ]
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -39,36 +39,50 @@ def get_sources_from_makefile(makefile):
         if (isinstance(statement, SetVariable) and
                 statement.vnameexp.is_static_string and
                 statement.vnameexp.s == 'OBJECTS'):
             return sorted((find_source_file(srcdir, s)
                            for s in statement.value.split()),
                           key=lambda x: x.lower())
 
 
-def write_sources(mozbuild, sources):
+def list_headers(path):
+    result = []
+    for name in os.listdir(path):
+        f = mozpath.join(path, name)
+        if os.path.isfile(f):
+            result.append(f)
+    return sorted(result, key=lambda x: x.lower())
+
+
+def write_sources(mozbuild, sources, headers):
     with open(mozbuild, 'wb') as f:
         f.write('# THIS FILE IS GENERATED BY /intl/icu_sources_data.py ' +
                 'DO NOT EDIT\n' +
                 'SOURCES += [\n')
         f.write(''.join("   '/%s',\n" % s for s in sources))
+        f.write(']\n\n')
+        f.write('EXPORTS.unicode += [\n')
+        f.write(''.join("   '/%s',\n" % s for s in headers))
         f.write(']\n')
 
 
 def update_sources(topsrcdir):
     print('Updating ICU sources lists...')
     sys.path.append(mozpath.join(topsrcdir, 'build/pymake'))
     for d in ['common', 'i18n']:
-        makefile = mozpath.join(topsrcdir,
-                                'intl/icu/source/%s/Makefile.in' % d)
+        base_path = mozpath.join(topsrcdir, 'intl/icu/source/%s' % d)
+        makefile = mozpath.join(base_path, 'Makefile.in')
         mozbuild = mozpath.join(topsrcdir,
                                 'config/external/icu/%s/sources.mozbuild' % d)
         sources = [mozpath.relpath(s, topsrcdir)
                    for s in get_sources_from_makefile(makefile)]
-        write_sources(mozbuild, sources)
+        headers = [mozpath.normsep(os.path.relpath(s, topsrcdir))
+                   for s in list_headers(mozpath.join(base_path, 'unicode'))]
+        write_sources(mozbuild, sources, headers)
 
 
 def try_run(name, command, cwd=None, **kwargs):
     try:
         with tempfile.NamedTemporaryFile(prefix=name, delete=False) as f:
             subprocess.check_call(command, cwd=cwd, stdout=f,
                                 stderr=subprocess.STDOUT, **kwargs)
     except subprocess.CalledProcessError:
--- a/intl/locale/mac/moz.build
+++ b/intl/locale/mac/moz.build
@@ -6,13 +6,11 @@
 
 UNIFIED_SOURCES += [
     'nsCollationMacUC.cpp',
     'nsDateTimeFormatMac.cpp',
     'nsMacCharset.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
 LOCAL_INCLUDES += [
     '..',
 ]
--- a/intl/unicharutil/util/internal/moz.build
+++ b/intl/unicharutil/util/internal/moz.build
@@ -13,13 +13,9 @@ include('../objs.mozbuild')
 UNIFIED_SOURCES += intl_unicharutil_util_cppsrcs
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '..',
 ]
 
-if CONFIG['ENABLE_INTL_API']:
-    CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
-
 DIST_INSTALL = True
--- a/intl/unicharutil/util/moz.build
+++ b/intl/unicharutil/util/moz.build
@@ -35,13 +35,11 @@ USE_STATIC_LIBS = True
 
 if CONFIG['_MSC_VER']:
     DEFINES['_USE_ANSI_CPP'] = True
     # Don't include directives about which CRT to use
     CFLAGS += ['-Zl']
     CXXFLAGS += ['-Zl']
 
 if CONFIG['ENABLE_INTL_API']:
-    CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
     USE_LIBS += ['icu']
 
 DIST_INSTALL = True
--- a/js/src/moz.build
+++ b/js/src/moz.build
@@ -726,17 +726,16 @@ if CONFIG['OS_ARCH'] == 'SunOS':
         'nsl',
         'socket',
     ]
 
 OS_LIBS += CONFIG['REALTIME_LIBS']
 
 CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
 CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
 
 NO_EXPAND_LIBS = True
 
 DIST_INSTALL = True
 
 # Prepare self-hosted JS code for embedding
 GENERATED_FILES += ['selfhosted.out.h']
 selfhosted = GENERATED_FILES['selfhosted.out.h']
--- a/layout/forms/moz.build
+++ b/layout/forms/moz.build
@@ -47,16 +47,10 @@ LOCAL_INCLUDES += [
     '../base',
     '../generic',
     '../style',
     '../xul',
     '/dom/base',
     '/dom/html',
 ]
 
-if CONFIG['ENABLE_INTL_API']:
-    # nsNumberControlFrame.cpp requires ICUUtils.h which in turn requires
-    # i18n/unum.h
-    CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
-
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wno-error=shadow']
--- a/netwerk/dns/moz.build
+++ b/netwerk/dns/moz.build
@@ -63,19 +63,16 @@ etld_data.inputs = ['effective_tld_names
 
 # need to include etld_data.inc
 LOCAL_INCLUDES += [
     '/netwerk/base',
 ]
 
 if CONFIG['ENABLE_INTL_API']:
     DEFINES['IDNA2008'] = True
-    CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-    LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
     USE_LIBS += ['icu']
 else:
     UNIFIED_SOURCES += [
         'nameprep.c',
     ]
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wno-error=shadow']
--- a/xpcom/build/moz.build
+++ b/xpcom/build/moz.build
@@ -95,11 +95,8 @@ LOCAL_INCLUDES += [
 
 if CONFIG['MOZ_VPX']:
     LOCAL_INCLUDES += [
         '/media/libvpx',
     ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     CXXFLAGS += CONFIG['TK_CFLAGS']
-
-CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']