# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. project_flag( "MOZ_ANDROID_EXCLUDE_FONTS", help="Whether to exclude font files from the build", default=True, ) project_flag( "MOZ_ANDROID_HLS_SUPPORT", help="Enable HLS (HTTP Live Streaming) support (currently using the ExoPlayer library)", default=True, ) option( "--num-content-services", default="40", help="The number of content process services to generate in the GeckoView manifest", ) @depends("--num-content-services") def num_content_services(value): strValue = value[0] intValue = int(strValue) acceptableRange = range(1, 41) if intValue not in acceptableRange: die( "Unacceptable value, must be within range [%d,%d)" % (acceptableRange.start, acceptableRange.stop) ) return strValue set_config("MOZ_ANDROID_CONTENT_SERVICE_COUNT", num_content_services) set_define("MOZ_ANDROID_CONTENT_SERVICE_COUNT", num_content_services) option( "--enable-isolated-process", env="MOZ_ANDROID_CONTENT_SERVICE_ISOLATED_PROCESS", help="Enable generating content process services with isolatedProcess=true", default=False, ) set_config( "MOZ_ANDROID_CONTENT_SERVICE_ISOLATED_PROCESS", depends_if("MOZ_ANDROID_CONTENT_SERVICE_ISOLATED_PROCESS")(lambda x: True), ) option( "--enable-geckoview-lite", help="Build GeckoView in Lite mode. Lite mode removes all unnecessary dependencies like Glean.", ) set_config("MOZ_ANDROID_GECKOVIEW_LITE", True, when="--enable-geckoview-lite") imply_option("MOZ_NORMANDY", False) imply_option("MOZ_SERVICES_HEALTHREPORT", True) imply_option("MOZ_ANDROID_HISTORY", True) imply_option("--enable-small-chunk-size", True) @depends(target) def check_target(target): if target.os != "Android": log.error( "You must specify --target=arm-linux-androideabi (or some " "other valid Android target) when building mobile/android." ) die( "See https://developer.mozilla.org/docs/Mozilla/Developer_guide/" "Build_Instructions/Simple_Firefox_for_Android_build " "for more information about the necessary options." ) include("../../toolkit/moz.configure") include("../../build/moz.configure/android-sdk.configure") include("../../build/moz.configure/java.configure") include("gradle.configure") # Automation will set this via the TC environment. option( env="MOZ_ANDROID_FAT_AAR_ARCHITECTURES", nargs="*", choices=("armeabi-v7a", "arm64-v8a", "x86", "x86_64"), help='Comma-separated list of Android CPU architectures like "armeabi-v7a,arm64-v8a,x86,x86_64"', ) set_config( "MOZ_ANDROID_FAT_AAR_ARCHITECTURES", depends("MOZ_ANDROID_FAT_AAR_ARCHITECTURES")(lambda x: x), )