Skip to content
Snippets Groups Projects
Commit 76db18fa authored by Xidorn Quan's avatar Xidorn Quan
Browse files

Bug 1284406 part 3 - Export ICU headers in include/unicode. r=glandium

MozReview-Commit-ID: FuwAgEGjhxm

--HG--
extra : source : c07ceab42b47b18a1e8d436e7c888bdd113575fa
parent 173dc1aa
No related branches found
No related tags found
No related merge requests found
Showing
with 195 additions and 41 deletions
......@@ -16,11 +16,10 @@ MOZ_ARG_WITH_BOOL(system-icu,
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,
......
......@@ -17,7 +17,7 @@ DEFINES['U_COMMON_IMPLEMENTATION'] = True
#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')
......@@ -179,3 +179,92 @@ SOURCES += [
'/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',
]
......@@ -9,7 +9,7 @@ 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')
......@@ -199,3 +199,87 @@ SOURCES += [
'/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',
]
......@@ -10,6 +10,4 @@
Library('icustubdata')
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
SOURCES += ['/intl/icu/source/stubdata/stubdata.c']
......@@ -109,7 +109,3 @@ LOCAL_INCLUDES += [
'/xpcom/build',
'/xpcom/threads',
]
if CONFIG['ENABLE_INTL_API']:
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
......@@ -236,9 +236,6 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
# 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',
]
......
......@@ -9,8 +9,6 @@ SOURCES += [
]
FINAL_LIBRARY = 'xul'
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
LOCAL_INCLUDES += [
'../locale',
'../lwbrk',
......
......@@ -44,12 +44,24 @@ def get_sources_from_makefile(makefile):
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')
......@@ -57,13 +69,15 @@ 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):
......
......@@ -11,8 +11,6 @@ UNIFIED_SOURCES += [
]
FINAL_LIBRARY = 'xul'
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
LOCAL_INCLUDES += [
'..',
]
......@@ -18,8 +18,4 @@ LOCAL_INCLUDES += [
'..',
]
if CONFIG['ENABLE_INTL_API']:
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
DIST_INSTALL = True
......@@ -40,8 +40,6 @@ if CONFIG['_MSC_VER']:
CXXFLAGS += ['-Zl']
if CONFIG['ENABLE_INTL_API']:
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
USE_LIBS += ['icu']
DIST_INSTALL = True
......@@ -731,7 +731,6 @@ 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
......
......@@ -52,11 +52,5 @@ LOCAL_INCLUDES += [
'/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']
......@@ -68,9 +68,6 @@ LOCAL_INCLUDES += [
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 += [
......
......@@ -100,6 +100,3 @@ if CONFIG['MOZ_VPX']:
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
CXXFLAGS += CONFIG['TK_CFLAGS']
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment