hasufell-repository/packages/dev-libs/spidermonkey/files/spidermonkey-24-system-icu.patch
hasufell c491cdc806 spidermonkey: import with icu option
We need to disable it in upcoming 0ad package.
2014-11-24 22:30:05 +01:00

204 lines
6.1 KiB
Diff

Source: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch?revision=1.1
Upstream: Unknown
Reason: Use the system installed icu library instead of building and linking the bundled one
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
index 4944d31..4176e14 100644
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -237,12 +237,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
@@ -271,6 +276,7 @@ distclean clean::
$(call SUBMAKE,$@,intl/icu)
endif
+endif
#
# END ECMAScript Internationalization API
@@ -403,7 +409,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
diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in
index 5f60d15..e1fe1f8 100644
--- a/js/src/config/Makefile.in
+++ b/js/src/config/Makefile.in
@@ -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)
diff --git a/js/src/config/system-headers b/js/src/config/system-headers
index b52aed6..1ca7420 100644
--- a/js/src/config/system-headers
+++ b/js/src/config/system-headers
@@ -1132,3 +1132,14 @@ kvm.h
spawn.h
err.h
xlocale.h
+#if MOZ_NATIVE_ICU==1
+unicode/locid.h
+unicode/numsys.h
+unicode/ucal.h
+unicode/ucol.h
+unicode/udat.h
+unicode/udatpg.h
+unicode/uenum.h
+unicode/unum.h
+unicode/ustring.h
+#endif
diff --git a/js/src/configure.in b/js/src/configure.in
index 4bccbe3..d535491 100644
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -4409,6 +4409,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
if test -n "$JS_STANDALONE"; then
ENABLE_INTL_API=1
@@ -4421,37 +4431,34 @@ MOZ_ARG_ENABLE_BOOL(intl-api,
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)
- 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
diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in
index 288934a..a582dfe 100644
--- a/js/src/gdb/Makefile.in
+++ b/js/src/gdb/Makefile.in
@@ -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
diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in
index 5f7d594..10d7054 100644
--- a/js/src/jsapi-tests/Makefile.in
+++ b/js/src/jsapi-tests/Makefile.in
@@ -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
diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in
index 2e1df09..db66c69 100644
--- a/js/src/shell/Makefile.in
+++ b/js/src/shell/Makefile.in
@@ -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..