gecko-dev/mobile/android/moz.configure
Brindusan Cristian 9e0ffdd8cb Backed out 7 changesets (bug 1419581) as requested by nalexander a=backout
Backed out changeset 7f41dd3bbc2d (bug 1419581)
Backed out changeset d4d42899e5cd (bug 1419581)
Backed out changeset 78828bf781d7 (bug 1419581)
Backed out changeset 5224db0c36aa (bug 1419581)
Backed out changeset 072108d16590 (bug 1419581)
Backed out changeset f8b3e95f18e4 (bug 1419581)
Backed out changeset 5f7645a19bf1 (bug 1419581)
2018-01-24 22:28:19 +02:00

183 lines
7.1 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('--with-google-play-services',
help='Enable features that depend on non-free Google Play Services',
default=True)
@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))
set_config('ANDROID_GOOGLE_PLAY_SERVICES_VERSION', '8.4.0')
add_old_configure_assignment('ANDROID_GOOGLE_PLAY_SERVICES_VERSION', '8.4.0')
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, '--help')
def install_tracking_default(milestone, google_play_services, help):
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)
set_config('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0')
add_old_configure_assignment('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0')
@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/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')