spidermonkey: import with icu option
We need to disable it in upcoming 0ad package.
This commit is contained in:
		
							parent
							
								
									5a17f17c40
								
							
						
					
					
						commit
						c491cdc806
					
				| @ -1,5 +1,6 @@ | ||||
| app-virtualization | ||||
| dev-lang | ||||
| dev-libs | ||||
| dev-util | ||||
| sci-mathematics | ||||
| x11-apps | ||||
|  | ||||
| @ -0,0 +1,203 @@ | ||||
| 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.. | ||||
|   | ||||
							
								
								
									
										58
									
								
								packages/dev-libs/spidermonkey/spidermonkey-24.2.0.exheres-0
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								packages/dev-libs/spidermonkey/spidermonkey-24.2.0.exheres-0
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | ||||
| # Copyright 2009 Richard Brown | ||||
| # Copyright 2011 Mike Kazantsev | ||||
| # Copyright 2012 Wouter van Kesteren <woutershep@gmail.com> | ||||
| # Copyright 2013 Saleem Abdulrasool <compnerd@compnerd.org> | ||||
| # Distributed under the terms of the GNU General Public License v2 | ||||
| 
 | ||||
| require autotools [ supported_autoconf=[ 2.1 ] supported_automake=[ 1.13 ] ] | ||||
| require spidermonkey python | ||||
| 
 | ||||
| DOWNLOADS="http://ftp.mozilla.org/pub/mozilla.org/js/mozjs-${PV}.tar.bz2" | ||||
| 
 | ||||
| LICENCES="|| ( MPL-1.1 MPL-2.0 GPL-2 GPL-3 LGPL-2.1 LGPL-3 )" | ||||
| SLOT="24.0" | ||||
| PLATFORMS="~amd64 ~x86" | ||||
| MYOPTIONS="icu" | ||||
| 
 | ||||
| DEPENDENCIES=" | ||||
|     build: | ||||
|         app-arch/zip | ||||
|         dev-lang/perl:*[>=5.6] | ||||
|         dev-lang/python:*[>=2.7] | ||||
|         virtual/pkg-config | ||||
|     build+run: | ||||
|         dev-libs/icu[>=50.1.2][multibuild_c:*(-)?] | ||||
|         dev-libs/libffi[>=3.0.9][multibuild_c:*(-)?] | ||||
|         dev-libs/nspr[>=4.9.2][multibuild_c:*(-)?] | ||||
|         sys-libs/readline[multibuild_c:*(-)?] | ||||
| " | ||||
| 
 | ||||
| WORK=${WORKBASE}/mozjs-${PV}/js/src | ||||
| 
 | ||||
| DEFAULT_SRC_PREPARE_PATCHES=( -p3 "${FILES}"/${PN}-24-system-icu.patch ) | ||||
| DEFAULT_SRC_CONFIGURE_PARAMS=( | ||||
|     --hates=docdir | ||||
|     --enable-jemalloc | ||||
|     --enable-readline | ||||
|     --enable-system-ffi | ||||
|     --enable-threadsafe | ||||
|     --enable-ui-locale=en_US | ||||
|     --disable-static | ||||
|     --with-system-icu | ||||
|     --with-system-nspr | ||||
| ) | ||||
| 
 | ||||
| DEFAULT_SRC_CONFIGURE_OPTION_ENABLES=( | ||||
|     'icu intl-api' | ||||
| ) | ||||
| 
 | ||||
| # spidermonkey build system requires that SHELL is always set. | ||||
| # It's missing sometimes in chroot environments, so force it here. | ||||
| export SHELL=/bin/sh | ||||
| 
 | ||||
| test_one_multibuild() { | ||||
|     esandbox allow_net "unix:${TEMP%/}/pymp-*/listener-*" | ||||
|     default | ||||
|     esandbox disallow_net "unix:${TEMP%/}/pymp-*/listener-*" | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										14
									
								
								packages/dev-libs/spidermonkey/spidermonkey.exlib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								packages/dev-libs/spidermonkey/spidermonkey.exlib
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| # Copyright 2013 Saleem Abdulrasool <compnerd@compnerd.org> | ||||
| # Distributed under the terms of the GNU General Public License v2 | ||||
| 
 | ||||
| require easy-multibuild | ||||
| 
 | ||||
| SUMMARY="Mozilla's C implementation of JavaScript" | ||||
| HOMEPAGE="http://www.mozilla.org/js/spidermonkey/" | ||||
| 
 | ||||
| MYOPTIONS="multibuild_c: 32 64" | ||||
| 
 | ||||
| BUGS_TO="mk.fraggod@gmail.com" | ||||
| 
 | ||||
| UPSTREAM_RELEASE_NOTES="https://developer.mozilla.org/en-US/docs/SpiderMonkey/$(ever major) [[ lang = en ]]" | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user