From ecb827c5c4782934453054b0b94a27169a65f3d6 Mon Sep 17 00:00:00 2001 From: Matt A. Tobin Date: Nov 16 2020 17:47:54 +0000 Subject: Issue #251 - Move chrome packaging options to ac configure Also adds options for new functionality in #1683 --- diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure index cd8d2e0..9673b8a 100644 --- a/build/moz.configure/old.configure +++ b/build/moz.configure/old.configure @@ -161,6 +161,8 @@ def old_configure_options(*options): '--enable-b2g-camera', '--enable-b2g-ril', '--enable-bundled-fonts', + '--enable-chrome-compression', + '--enable-chrome-format', '--enable-clang-plugin', '--enable-content-sandbox', '--enable-cookies', @@ -262,6 +264,7 @@ def old_configure_options(*options): '--with-app-name', '--with-arch', '--with-branding', + '--with-chrome-name', '--with-crashreporter-enable-percent', '--with-cross-lib', '--with-debug-label', diff --git a/config/config.mk b/config/config.mk index 5a352e5..6208d12 100644 --- a/config/config.mk +++ b/config/config.mk @@ -216,7 +216,7 @@ endif # NO_PROFILE_GUIDED_OPTIMIZE MAKE_JARS_FLAGS = \ -t $(topsrcdir) \ - -f $(MOZ_JAR_MAKER_FILE_FORMAT) \ + -f $(MOZ_CHROME_FILE_FORMAT) \ $(NULL) ifdef USE_EXTENSION_MANIFEST diff --git a/config/tests/src-simple/Makefile.in b/config/tests/src-simple/Makefile.in index 55fdfd8..96f9a41 100644 --- a/config/tests/src-simple/Makefile.in +++ b/config/tests/src-simple/Makefile.in @@ -22,7 +22,7 @@ REF_MANIFEST = $(if $(USE_EXTENSION_MANIFEST),chrome.manifest,test.manifest) check-%:: if test -d $(FINAL_TARGET); then rm -rf $(FINAL_TARGET); fi; - $(MAKE) realchrome MOZ_JAR_MAKER_FILE_FORMAT=$* + $(MAKE) realchrome MOZ_CHROME_FILE_FORMAT=$* @echo 'Comparing manifests...' @if ! sort $(MY_MANIFEST) | diff --text -U 0 $(srcdir)/../$(REF_MANIFEST).$* - ; then \ echo 'TEST-UNEXPECTED-FAIL | config/tests/$(REF_MANIFEST).$* | differing content in manifest!' ; \ diff --git a/old-configure.in b/old-configure.in index d34f722..ade675e 100644 --- a/old-configure.in +++ b/old-configure.in @@ -4315,6 +4315,85 @@ dnl = dnl ======================================================== MOZ_ARG_HEADER(Misc. Options) +dnl ========================================================= +dnl = Chrome format +dnl ========================================================= +MOZ_ARG_ENABLE_STRING([chrome-format], +[ --enable-chrome-format=jar|flat|omni + Select FORMAT of chrome files during packaging], + MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`) + +if test -z "$MOZ_CHROME_FILE_FORMAT"; then + MOZ_CHROME_FILE_FORMAT=omni +fi + +if test "$MOZ_CHROME_FILE_FORMAT" = "symlink"; then + AC_MSG_ERROR([--enable-chrome-format=symlink has been deprecated. It is now used by default in $DIST/bin on platforms that support it]) +fi + +if test "$MOZ_CHROME_FILE_FORMAT" != "jar" && + test "$MOZ_CHROME_FILE_FORMAT" != "flat" && + test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then + AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, or omni]) +fi + +dnl ========================================================= +dnl = Chrome compression +dnl ========================================================= +MOZ_ARG_ENABLE_STRING([chrome-compression], +[ --enable-chrome-compression=none|deflate|brotli + Select COMPRESSION type of chrome files during packaging], + JAR_COMPRESSION=`echo $enableval | tr A-Z a-z`) + +if test -z "$JAR_COMPRESSION"; then + JAR_COMPRESSION=deflate +fi + +if test "$JAR_COMPRESSION" != "none" && + test "$JAR_COMPRESSION" != "deflate" && + test "$JAR_COMPRESSION" != "brotli"; then + AC_MSG_ERROR([--enable-chrome-compression must be set to either none, deflate, or brotli]) +fi + +dnl ========================================================= +dnl Omnijar packaging (bug 552121) +dnl ========================================================= +dnl Omnijar packaging is compatible with flat packaging. +dnl In unpackaged builds, omnijar looks for files as if +dnl things were flat packaged. After packaging, all files +dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT +dnl is set to flat since putting files into jars is only +dnl done during packaging with omnijar. +if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then + MOZ_OMNIJAR=1 + AC_DEFINE(MOZ_OMNIJAR) +fi + +# Allow someone to change OMNIJAR_NAME in mozconfig +MOZ_ARG_WITH_STRING(chrome-name, +[ --with-chrome-name=CHROMENAME + Set chrome jar name (default=omni.ja)], +[ val=`echo $withval` + OMNIJAR_NAME="$val"]) + +# Default Omni Jar Name +if test -z "$OMNIJAR_NAME" ; then + OMNIJAR_NAME=omni.ja +fi + +MOZ_PACKAGER_FORMAT="$MOZ_CHROME_FILE_FORMAT" +if test "$OS_ARCH" = "WINNT"; then + MOZ_CHROME_FILE_FORMAT=flat +else + MOZ_CHROME_FILE_FORMAT=symlink +fi + +AC_SUBST(JAR_COMPRESSION) +AC_SUBST(OMNIJAR_NAME) +AC_SUBST(MOZ_OMNIJAR) +AC_SUBST(MOZ_PACKAGER_FORMAT) +AC_SUBST(MOZ_CHROME_FILE_FORMAT) + dnl ======================================================== dnl = Disable Jetpack dnl ======================================================== diff --git a/python/mozbuild/mozbuild/test/backend/test_build.py b/python/mozbuild/mozbuild/test/backend/test_build.py index d3f5fb6..d6111d8 100644 --- a/python/mozbuild/mozbuild/test/backend/test_build.py +++ b/python/mozbuild/mozbuild/test/backend/test_build.py @@ -84,7 +84,7 @@ class TestBuild(unittest.TestCase): config.topobjdir) overrides = [ 'install_manifest_depends=', - 'MOZ_JAR_MAKER_FILE_FORMAT=flat', + 'MOZ_CHROME_FILE_FORMAT=flat', 'TEST_MOZBUILD=1', ] with self.line_handler() as handle_make_line: @@ -108,7 +108,7 @@ class TestBuild(unittest.TestCase): config.topobjdir) overrides = [ 'install_manifest_depends=', - 'MOZ_JAR_MAKER_FILE_FORMAT=flat', + 'MOZ_CHROME_FILE_FORMAT=flat', 'TEST_MOZBUILD=1', ] with self.line_handler() as handle_make_line: diff --git a/toolkit/moz.configure b/toolkit/moz.configure index deb7129..fbd728f 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -344,36 +344,6 @@ set_config('MOZ_FMP4', fmp4) set_define('MOZ_FMP4', fmp4) add_old_configure_assignment('MOZ_FMP4', fmp4) -# Miscellaneous -# ============================================================== -option(name='--enable-chrome-format', - help='Select FORMAT of chrome files during packaging.', - nargs=1, - choices=('omni', 'jar', 'flat'), - default='omni') - -@depends('--enable-chrome-format') -def packager_format(value): - return value[0] - -set_config('MOZ_PACKAGER_FORMAT', packager_format) - -@depends(host, build_project) -def jar_maker_format(host, build_project): - # Multilocales for mobile/android use the same mergedirs for all locales, - # so we can't use symlinks for those builds. - if host.os == 'WINNT': - return 'flat' - return 'symlink' - -set_config('MOZ_JAR_MAKER_FILE_FORMAT', jar_maker_format) - -@depends(toolkit) -def omnijar_name(toolkit): - return 'omni.ja' - -set_config('OMNIJAR_NAME', omnijar_name) - # Permissions system # ============================================================== option(name='--disable-permissions',