mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-26 23:23:33 +00:00
Bug 851992 - Allow building against system ICU library. r=glandium f=gaston
This commit is contained in:
parent
6f6db38c0e
commit
0fe3256e67
@ -98,6 +98,7 @@ export:: $(export-preqs)
|
||||
-DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
|
||||
-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
|
||||
-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
|
||||
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
|
||||
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
|
||||
$(INSTALL) system_wrappers $(DIST)
|
||||
|
||||
|
@ -1132,3 +1132,16 @@ kvm.h
|
||||
spawn.h
|
||||
err.h
|
||||
xlocale.h
|
||||
#if MOZ_NATIVE_ICU==1
|
||||
unicode/locid.h
|
||||
unicode/numsys.h
|
||||
unicode/ucal.h
|
||||
unicode/uclean.h
|
||||
unicode/ucol.h
|
||||
unicode/udat.h
|
||||
unicode/udatpg.h
|
||||
unicode/uenum.h
|
||||
unicode/unum.h
|
||||
unicode/ustring.h
|
||||
unicode/utypes.h
|
||||
#endif
|
||||
|
16
configure.in
16
configure.in
@ -4114,6 +4114,22 @@ if test -n "$MOZ_NATIVE_FFI"; then
|
||||
MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS"
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
dnl System ICU Support
|
||||
dnl ========================================================
|
||||
MOZ_NATIVE_ICU=
|
||||
MOZ_ARG_WITH_BOOL(system-icu,
|
||||
[ --with-system-icu
|
||||
Use system ICU (located with pkgconfig)],
|
||||
MOZ_NATIVE_ICU=1)
|
||||
|
||||
if test -n "$MOZ_NATIVE_ICU"; then
|
||||
PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
|
||||
MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS"
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_NATIVE_ICU)
|
||||
|
||||
dnl ========================================================
|
||||
dnl Java SDK support
|
||||
dnl ========================================================
|
||||
|
@ -225,12 +225,17 @@ endif
|
||||
# ICU headers need to be available whether we build with the complete
|
||||
# Internationalization API or not - ICU stubs rely on them.
|
||||
|
||||
ifdef MOZ_NATIVE_ICU
|
||||
LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS)
|
||||
else
|
||||
LOCAL_INCLUDES += \
|
||||
-I$(topsrcdir)/../../intl/icu/source/common \
|
||||
-I$(topsrcdir)/../../intl/icu/source/i18n \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
ifdef ENABLE_INTL_API
|
||||
ifndef MOZ_NATIVE_ICU
|
||||
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
# Parallel gmake is buggy on Windows
|
||||
@ -259,6 +264,7 @@ distclean clean::
|
||||
$(call SUBMAKE,$@,intl/icu)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# END ECMAScript Internationalization API
|
||||
@ -385,7 +391,11 @@ ifneq (,$(MOZ_ZLIB_LIBS)$(MOZ_GLUE_LDFLAGS))
|
||||
DEFINES += -DUSE_ZLIB
|
||||
endif
|
||||
|
||||
SHARED_LIBRARY_LIBS += $(ICU_LIBS)
|
||||
ifdef MOZ_NATIVE_ICU
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS)
|
||||
else
|
||||
SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS)
|
||||
endif
|
||||
|
||||
# Prevent floating point errors caused by VC++ optimizations
|
||||
ifdef _MSC_VER
|
||||
|
@ -59,6 +59,7 @@ export:: \
|
||||
$(call mkdir_deps,system_wrappers_js) \
|
||||
$(NULL)
|
||||
$(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \
|
||||
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
|
||||
$(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js
|
||||
$(INSTALL) system_wrappers_js $(DIST)
|
||||
|
||||
|
@ -1132,3 +1132,16 @@ kvm.h
|
||||
spawn.h
|
||||
err.h
|
||||
xlocale.h
|
||||
#if MOZ_NATIVE_ICU==1
|
||||
unicode/locid.h
|
||||
unicode/numsys.h
|
||||
unicode/ucal.h
|
||||
unicode/uclean.h
|
||||
unicode/ucol.h
|
||||
unicode/udat.h
|
||||
unicode/udatpg.h
|
||||
unicode/uenum.h
|
||||
unicode/unum.h
|
||||
unicode/ustring.h
|
||||
unicode/utypes.h
|
||||
#endif
|
||||
|
@ -4263,6 +4263,16 @@ fi
|
||||
dnl ========================================================
|
||||
dnl ECMAScript Internationalization API Support (uses ICU)
|
||||
dnl ========================================================
|
||||
ICU_LIB_NAMES=
|
||||
MOZ_NATIVE_ICU=
|
||||
MOZ_ARG_WITH_BOOL(system-icu,
|
||||
[ --with-system-icu
|
||||
Use system ICU (located with pkgconfig)],
|
||||
MOZ_NATIVE_ICU=1)
|
||||
|
||||
if test -n "$MOZ_NATIVE_ICU"; then
|
||||
PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
|
||||
fi
|
||||
|
||||
MOZ_ARG_WITH_STRING(intl-api,
|
||||
[ --with-intl-api, --with-intl-api=build, --without-intl-api
|
||||
@ -4297,37 +4307,36 @@ fi
|
||||
dnl Settings for the implementation of the ECMAScript Internationalization API
|
||||
if test -n "$ENABLE_INTL_API"; then
|
||||
AC_DEFINE(ENABLE_INTL_API)
|
||||
# We build ICU as a static library.
|
||||
AC_DEFINE(U_STATIC_IMPLEMENTATION)
|
||||
|
||||
case "$OS_TARGET" in
|
||||
WINNT)
|
||||
ICU_LIB_NAMES="icuin icuuc icudt"
|
||||
;;
|
||||
Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
|
||||
ICU_LIB_NAMES="icui18n icuuc icudata"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
|
||||
esac
|
||||
|
||||
ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
|
||||
else
|
||||
ICU_LIB_NAMES=
|
||||
ICU_LIBS=
|
||||
if test -z "$MOZ_NATIVE_ICU"; then
|
||||
case "$OS_TARGET" in
|
||||
WINNT)
|
||||
ICU_LIB_NAMES="icuin icuuc icudt"
|
||||
;;
|
||||
Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
|
||||
ICU_LIB_NAMES="icui18n icuuc icudata"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
|
||||
esac
|
||||
MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(ENABLE_INTL_API)
|
||||
AC_SUBST(ICU_LIB_NAMES)
|
||||
AC_SUBST(ICU_LIBS)
|
||||
|
||||
dnl Source files that use ICU should have control over which parts of the ICU
|
||||
dnl namespace they want to use.
|
||||
AC_DEFINE(U_USING_ICU_NAMESPACE,0)
|
||||
|
||||
AC_SUBST(MOZ_ICU_LIBS)
|
||||
AC_SUBST(MOZ_NATIVE_ICU)
|
||||
|
||||
dnl Settings for ICU
|
||||
if test -n "$ENABLE_INTL_API" ; then
|
||||
if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
|
||||
dnl We build ICU as a static library.
|
||||
AC_DEFINE(U_STATIC_IMPLEMENTATION)
|
||||
|
||||
dnl Source files that use ICU should have control over which parts of the ICU
|
||||
dnl namespace they want to use.
|
||||
AC_DEFINE(U_USING_ICU_NAMESPACE,0)
|
||||
|
||||
# Set ICU compile options
|
||||
ICU_CPPFLAGS=""
|
||||
# don't use icu namespace automatically in client code
|
||||
|
@ -19,6 +19,10 @@ LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIB
|
||||
|
||||
LOCAL_INCLUDES += -I$(topsrcdir) -I..
|
||||
|
||||
ifdef MOZ_NATIVE_ICU
|
||||
EXTRA_LIBS += $(MOZ_ICU_LIBS)
|
||||
endif
|
||||
|
||||
EXTRA_LIBS += $(MOZ_FFI_LIBS)
|
||||
|
||||
# Place a GDB Python auto-load file next to the gdb-tests executable, both
|
||||
|
@ -20,6 +20,10 @@ LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLI
|
||||
|
||||
LOCAL_INCLUDES += -I$(topsrcdir) -I..
|
||||
|
||||
ifdef MOZ_NATIVE_ICU
|
||||
EXTRA_LIBS += $(MOZ_ICU_LIBS)
|
||||
endif
|
||||
|
||||
EXTRA_LIBS += $(MOZ_FFI_LIBS)
|
||||
|
||||
ifdef QEMU_EXE
|
||||
|
@ -27,6 +27,9 @@ LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_
|
||||
ifdef MOZ_NATIVE_FFI
|
||||
EXTRA_LIBS += $(MOZ_FFI_LIBS)
|
||||
endif
|
||||
ifdef MOZ_NATIVE_ICU
|
||||
EXTRA_LIBS += $(MOZ_ICU_LIBS)
|
||||
endif
|
||||
|
||||
LOCAL_INCLUDES += -I$(topsrcdir) -I..
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user