gecko-dev/mobile/android/moz.configure
Brindusan Cristian 1f6d297e33 Backed out 5 changesets (bug 1508976, bug 1522581) for android geckoview bustages at /usr/bin/python2.7. CLOSED TREE
Backed out changeset 7a6be593b0be (bug 1522581)
Backed out changeset c47b37ac1775 (bug 1522581)
Backed out changeset 91c31d2a7706 (bug 1508976)
Backed out changeset da57df805c56 (bug 1508976)
Backed out changeset 4e5d97c93515 (bug 1508976)
2019-03-05 22:42:15 +02:00

177 lines
6.9 KiB
Python

# -*- 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)
option('--without-google-play-services',
help='Disable features that depend on non-free Google Play Services')
@depends('--with-google-play-services')
def google_play_services(value):
return bool(value)
set_config('MOZ_ANDROID_GOOGLE_PLAY_SERVICES', depends_if(google_play_services)(lambda _: True))
option(env='MOZ_ANDROID_GCM',
help='Enable GCM (Google Cloud Messaging) registration',
default=google_play_services)
set_config('MOZ_ANDROID_GCM',
depends_if('MOZ_ANDROID_GCM')(lambda _: True))
add_old_configure_assignment('MOZ_ANDROID_GCM',
depends_if('MOZ_ANDROID_GCM')(lambda _: True))
option(env='MOZ_NATIVE_DEVICES',
help='Enable second screen support using native Android libraries.',
default=google_play_services)
set_config('MOZ_NATIVE_DEVICES',
depends_if('MOZ_NATIVE_DEVICES')(lambda _: True))
add_old_configure_assignment('MOZ_NATIVE_DEVICES',
depends_if('MOZ_NATIVE_DEVICES')(lambda _: True))
# Enable install tracking SDK if we have Google Play support.
@depends(milestone, google_play_services)
def install_tracking_default(milestone, google_play_services):
return bool(milestone.is_release_or_beta and google_play_services)
option(env='MOZ_INSTALL_TRACKING',
help='Enable install tracking (currently using the Adjust SDK).',
default=install_tracking_default)
set_config('MOZ_INSTALL_TRACKING',
depends_if('MOZ_INSTALL_TRACKING')(lambda _: True))
add_old_configure_assignment('MOZ_INSTALL_TRACKING',
depends_if('MOZ_INSTALL_TRACKING')(lambda _: True))
option(env='MOZ_ANDROID_MMA',
help='Enable mobile marketing automation (currently using the Leanplum SDK).',
default=False)
set_config('MOZ_ANDROID_MMA',
depends_if('MOZ_ANDROID_MMA')(lambda _: True))
option(env='MOZ_ANDROID_POCKET',
help='Enable Pocket Stories in Activity Stream.',
default=False)
set_config('MOZ_ANDROID_POCKET',
depends_if('MOZ_ANDROID_POCKET')(lambda _: True))
project_flag('MOZ_ANDROID_DOWNLOADS_INTEGRATION',
help='Enable system download manager on Android',
default=True)
project_flag('MOZ_ANDROID_BEAM',
help='Enable NFC permission on Android',
default=True)
project_flag('MOZ_ANDROID_MLS_STUMBLER',
help='Include Mozilla Location Service Stumbler on Android',
default=True)
project_flag('MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE',
help='Background service for downloading additional content at runtime',
default=True)
project_flag('MOZ_ANDROID_PWA',
help='Enable support for Progressive Web Apps',
default=milestone.is_nightly)
# Enable the Switchboard A/B framework code.
# Note: The framework is always included in the app. This flag controls
# usage of the framework.
project_flag('MOZ_SWITCHBOARD',
help='Include Switchboard A/B framework on Android',
default=True)
project_flag('MOZ_ANDROID_HLS_SUPPORT',
help='Enable HLS (HTTP Live Streaming) support (currently using the ExoPlayer library)',
default=True)
option(env='MOZ_ANDROID_ACTIVITY_STREAM',
help='Enable Activity Stream on Android (replacing the default HomePager)',
default=False)
set_config('MOZ_ANDROID_ACTIVITY_STREAM',
depends_if('MOZ_ANDROID_ACTIVITY_STREAM')(lambda _: True))
option(env='MOZ_ANDROID_MOZILLA_ONLINE',
help='Enable MozillaOnline (Mozilla China) specific Android code',
default=False)
set_config('MOZ_ANDROID_MOZILLA_ONLINE',
depends_if('MOZ_ANDROID_MOZILLA_ONLINE')(lambda _: True))
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')
# Must come after the ../../toolkit/moz.configure.
@depends('MOZ_INSTALL_TRACKING', google_play_services, '--with-adjust-sdk-keyfile')
def check_install_tracking(install_tracking,
google_play_services,
adjust_sdk_keyfile):
if install_tracking:
if not google_play_services:
die('You must specify --with-google-play-services when'
' building with MOZ_INSTALL_TRACKING=1')
if not adjust_sdk_keyfile:
die('You must specify --with-adjust-sdk-keyfile=/path/to/keyfile when'
' building with MOZ_INSTALL_TRACKING=1')
# Must come after the ../../toolkit/moz.configure.
@depends('MOZ_ANDROID_MMA',
google_play_services,
'MOZ_ANDROID_GCM',
'--with-leanplum-sdk-keyfile')
def check_android_mma(android_mma,
google_play_services,
android_gcm,
leanplum_sdk_keyfile):
if android_mma:
if not google_play_services:
die('You must specify --with-google-play-services when'
' building with MOZ_ANDROID_MMA=1')
if not android_gcm:
die('You must specify MOZ_ANDROID_GCM=1 when'
' building with MOZ_ANDROID_MMA=1')
if not leanplum_sdk_keyfile:
die('You must specify --with-leanplum-sdk-keyfile=/path/to/keyfile when'
' building with MOZ_ANDROID_MMA=1')
@depends('MOZ_ANDROID_POCKET',
'--with-pocket-api-keyfile')
def check_android_pocket(android_pocket, pocket_api_keyfile):
if android_pocket and not pocket_api_keyfile:
die('You must specify --with-pocket-api-keyfile=/path/to/keyfile when'
' building with MOZ_ANDROID_POCKET=1')
# Must come after the ../../toolkit/moz.configure.
@depends('MOZ_ANDROID_GCM', google_play_services)
def check_android_gcm(android_gcm,
google_play_services):
if android_gcm:
if not google_play_services:
die('You must specify --with-google-play-services when'
' building with MOZ_ANDROID_GCM=1')