From 06a15a258d5008762c9f1e37d6bf9cc41bab919d Mon Sep 17 00:00:00 2001 From: Nick Alexander Date: Thu, 30 Jul 2015 11:50:44 -0700 Subject: [PATCH] Bug 1189459 - Allow generating geckoview AAR files when MOZ_APP_NAME is not 'fennec'. r=gps This just allows a little versatility for consumers such as b2gdroid, which are Fennec-like but don't have MOZ_APP_NAME=fennec. I elected to pass appname as a parameter rather than modify the existing distdir because I expect to want to differentiate, in some way, the output AAR files based on the underlying name. That is, in future we might generate geckoview-fennec-VERSION.aar and geckolibs-b2gdroid-VERSION.aar, or stuff the name into the Ivy version information, or... This also fixes a typo in one of the JarFinder instantiations. --HG-- extra : commitid : CnJKouGgkh1 extra : rebase_source : 5767e66ea53e14dd6468adec741773a02a6e2d3a --- .../mozbuild/action/package_geckolibs_aar.py | 20 ++++++++++--------- toolkit/mozapps/installer/upload-files.mk | 1 + 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/python/mozbuild/mozbuild/action/package_geckolibs_aar.py b/python/mozbuild/mozbuild/action/package_geckolibs_aar.py index e5a1bb4cd791..eee679b58c0b 100644 --- a/python/mozbuild/mozbuild/action/package_geckolibs_aar.py +++ b/python/mozbuild/mozbuild/action/package_geckolibs_aar.py @@ -92,14 +92,14 @@ def _generate_geckoview_classes_jar(distdir, base_path): _zipdir(geckoview_aar_classes_path, classes_jar_path) return File(classes_jar_path) -def package_geckolibs_aar(topsrcdir, distdir, output_file): +def package_geckolibs_aar(topsrcdir, distdir, appname, output_file): jarrer = Jarrer(optimize=False) srcdir = os.path.join(topsrcdir, 'mobile', 'android', 'geckoview_library', 'geckolibs') jarrer.add('AndroidManifest.xml', File(os.path.join(srcdir, 'AndroidManifest.xml'))) jarrer.add('classes.jar', File(os.path.join(srcdir, 'classes.jar'))) - jni = FileFinder(os.path.join(distdir, 'fennec', 'lib')) + jni = FileFinder(os.path.join(distdir, appname, 'lib')) for p, f in jni.find('**/*.so'): jarrer.add(os.path.join('jni', p), f) @@ -110,17 +110,17 @@ def package_geckolibs_aar(topsrcdir, distdir, output_file): jarrer.add(os.path.join('assets', p), f) # This neatly ignores omni.ja. - assets = FileFinder(os.path.join(distdir, 'fennec', 'assets')) + assets = FileFinder(os.path.join(distdir, appname, 'assets')) for p, f in assets.find('**/*.so'): jarrer.add(os.path.join('assets', p), f) jarrer.copy(output_file) return 0 -def package_geckoview_aar(topsrcdir, distdir, output_file): +def package_geckoview_aar(topsrcdir, distdir, appname, output_file): jarrer = Jarrer(optimize=False) - fennec_path = os.path.join(distdir, 'fennec') - assets = FileFinder(os.path.join(fennec_path, 'assets'), ignore=['*.so']) + app_path = os.path.join(distdir, appname) + assets = FileFinder(os.path.join(app_path, 'assets'), ignore=['*.so']) for p, f in assets.find('omni.ja'): jarrer.add(os.path.join('assets', p), f) @@ -129,7 +129,7 @@ def package_geckoview_aar(topsrcdir, distdir, output_file): # The resource set is packaged during Fennec's build. resjar = JarReader(os.path.join(base_path, 'geckoview_resources.zip')) - for p, f in JarFinder(p, resjar).find('*'): + for p, f in JarFinder(base_path, resjar).find('*'): jarrer.add(os.path.join('res', p), f) # Package the contents of all Fennec JAR files into classes.jar. @@ -159,6 +159,8 @@ def main(args): help='Top source directory.') parser.add_argument('--distdir', help='Distribution directory (usually $OBJDIR/dist).') + parser.add_argument('--appname', + help='Application name (usually $MOZ_APP_NAME, like "fennec").') args = parser.parse_args(args) # An Ivy 'publication' date must be given in the form yyyyMMddHHmmss, and Mozilla buildids are in this format. @@ -174,8 +176,8 @@ def main(args): geckoview_aar = os.path.join(args.dir, 'geckoview-{revision}.aar').format(revision=args.revision) paths_to_hash.append(geckoview_aar) - package_geckolibs_aar(args.topsrcdir, args.distdir, gecklibs_aar) - package_geckoview_aar(args.topsrcdir, args.distdir, geckoview_aar) + package_geckolibs_aar(args.topsrcdir, args.distdir, args.appname, gecklibs_aar) + package_geckoview_aar(args.topsrcdir, args.distdir, args.appname, geckoview_aar) geckolibs_pom_path = os.path.join(args.dir, 'geckolibs-{revision}.pom').format(revision=args.revision) paths_to_hash.append(geckolibs_pom_path) diff --git a/toolkit/mozapps/installer/upload-files.mk b/toolkit/mozapps/installer/upload-files.mk index 43068f78883c..b8b5154e9a96 100644 --- a/toolkit/mozapps/installer/upload-files.mk +++ b/toolkit/mozapps/installer/upload-files.mk @@ -392,6 +392,7 @@ INNER_MAKE_GECKOLIBS_AAR= \ --revision $(geckoaar-revision) \ --topsrcdir '$(topsrcdir)' \ --distdir '$(_ABS_DIST)' \ + --appname '$(MOZ_APP_NAME)' \ '$(_ABS_DIST)' else INNER_MAKE_GECKOLIBS_AAR=echo 'Android geckolibs.aar packaging requires packaging geckoview'