new file mode 100644
--- /dev/null
+++ b/mobile/android/app/build.gradle
@@ -0,0 +1,61 @@
+project.buildDir = "${topobjdir}/mobile/android/gradle/app/build"
+
+apply plugin: 'android'
+
+android {
+ compileSdkVersion rootProject.ext.compileSdkVersion
+ buildToolsVersion rootProject.ext.buildToolsVersion
+
+ defaultConfig {
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ }
+
+ buildTypes {
+ release {
+ runProguard false
+ proguardFile getDefaultProguardFile('proguard-android.txt')
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_7
+ targetCompatibility JavaVersion.VERSION_1_7
+ }
+
+ android {
+ lintOptions {
+ abortOnError false
+ }
+ }
+
+ sourceSets {
+ main {
+ manifest {
+ srcFile "${topobjdir}/mobile/android/base/AndroidManifest.xml"
+ }
+
+ assets {
+ srcDir "${topobjdir}/dist/fennec/assets"
+ }
+
+ jniLibs {
+ srcDir "${topobjdir}/dist/fennec/lib"
+ }
+ }
+
+ androidTest {
+ java {
+ srcDir "${topobjdir}/mobile/android/gradle/app/src/androidTest/robocop_harness/java"
+ srcDir "${topobjdir}/mobile/android/gradle/app/src/androidTest/robocop/java"
+ srcDir "${topobjdir}/mobile/android/gradle/app/src/androidTest/background/java"
+ srcDir "${topobjdir}/mobile/android/gradle/app/src/androidTest/browser/java"
+ }
+ }
+ }
+}
+
+dependencies {
+ compile project(':base')
+ androidTestCompile fileTree(dir: "../../../build/mobile/robocop", include: ['*.jar'])
+}
--- a/mobile/android/base/Makefile.in
+++ b/mobile/android/base/Makefile.in
@@ -392,32 +392,38 @@ endef
$(eval $(call aapt_command,.aapt.nodeps,$(CURDIR)/AndroidManifest.xml FORCE,gecko-nodeps.ap_,gecko-nodeps/,gecko-nodeps/))
fennec_ids.txt: generated/org/mozilla/gecko/R.java fennec-ids-generator.py
$(PYTHON) $(topsrcdir)/mobile/android/base/fennec-ids-generator.py -i $< -o $@
# Override the Java settings with some specific android settings
include $(topsrcdir)/config/android-common.mk
-# This target is only used by the Eclipse integration. It rebuilds
-# resources that end up in omni.ja, does most of the packaging step,
-# and then updates omni.ja in place. If you're not using Eclipse, you
-# should be using |mach build mobile/android && mach package|.
+# This target is only used by IDE integrations. It rebuilds resources
+# that end up in omni.ja, does most of the packaging step, and then
+# updates omni.ja in place. If you're not using an IDE, you should be
+# using |mach build mobile/android && mach package|.
$(abspath $(DIST)/fennec/$(OMNIJAR_NAME)): FORCE
$(REPORT_BUILD)
$(MAKE) -C ../locales
$(MAKE) -C ../chrome
$(MAKE) -C ../components
$(MAKE) -C ../modules
$(MAKE) -C ../app
$(MAKE) -C ../themes/core
$(MAKE) -C ../installer stage-package
rsync --update $(DIST)/fennec/$(notdir $(OMNIJAR_NAME)) $@
$(RM) $(DIST)/fennec/$(notdir $(OMNIJAR_NAME))
+# Targets built very early during a Gradle build.
+gradle-targets: $(abspath $(DIST)/fennec/$(OMNIJAR_NAME))
+gradle-targets: .aapt.deps
+
+.PHONY: gradle-targets
+
libs:: geckoview_resources.zip classes.dex jni-stubs.inc GeneratedJNIWrappers.cpp fennec_ids.txt
$(INSTALL) geckoview_resources.zip $(FINAL_TARGET)
$(INSTALL) classes.dex $(FINAL_TARGET)
@(diff jni-stubs.inc $(topsrcdir)/mozglue/android/jni-stubs.inc >/dev/null && diff GeneratedJNIWrappers.cpp $(topsrcdir)/widget/android/GeneratedJNIWrappers.cpp >/dev/null) || \
(echo '*****************************************************' && \
echo '*** Error: The generated JNI code has changed ***' && \
echo '* To update generated code in the tree, please run *' && \
echo && \
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/build.gradle
@@ -0,0 +1,98 @@
+project.buildDir = "${topobjdir}/mobile/android/gradle/base/build"
+
+apply plugin: 'android-library'
+
+android {
+ compileSdkVersion rootProject.ext.compileSdkVersion
+ buildToolsVersion rootProject.ext.buildToolsVersion
+
+ defaultConfig {
+ applicationId 'org.mozilla.gecko'
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ }
+
+ buildTypes {
+ release {
+ runProguard false
+ proguardFile getDefaultProguardFile('proguard-android.txt')
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_7
+ targetCompatibility JavaVersion.VERSION_1_7
+ }
+
+ android {
+ lintOptions {
+ abortOnError false
+ }
+ }
+
+ sourceSets {
+ main {
+ manifest {
+ srcFile 'gradle_AndroidManifest.xml'
+ }
+
+ java {
+ // The main sources are symlinked in here.
+ srcDir "${topobjdir}/mobile/android/gradle/base/src/main/java"
+ exclude '**/tests/**'
+ exclude '**/resources/**'
+ if (!MOZ_CRASHREPORTER) {
+ exclude '**/CrashReporter.java'
+ }
+ srcDir "../search/java"
+ srcDir "../stumbler/java"
+ srcDir "${topobjdir}/mobile/android/base/generated"
+ exclude '**/R.java'
+ exclude '**/Manifest.java'
+ }
+
+ res {
+ srcDir "newtablet/res"
+ srcDir "../branding/unofficial/res"
+ srcDir "${topobjdir}/mobile/android/base/res"
+ // The main resources are symlinked in here.
+ srcDir "${topobjdir}/mobile/android/gradle/base/src/main/res"
+ if (MOZ_CRASHREPORTER) {
+ srcDir "crashreporter/res"
+ }
+ }
+
+ resources {
+ srcDir '../locales'
+ srcDir '../chrome'
+ srcDir '../components'
+ srcDir '../modules'
+ srcDir '../app'
+ srcDir '../themes/core'
+ }
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ compile project(':thirdparty')
+ compile 'com.android.support:support-v4:19.1.+'
+ compile 'com.android.support:appcompat-v7:19.1.+'
+ compile 'com.android.support:mediarouter-v7:19.1.+'
+ compile 'com.google.android.gms:play-services:5.+'
+}
+
+task prepareObjDir(type:Exec) {
+ workingDir "${topobjdir}"
+
+ commandLine "${topsrcdir}/mach"
+ args 'build'
+ args '-C'
+ args 'mobile/android/base'
+ args 'gradle-targets'
+}
+
+android.libraryVariants.all { variant ->
+ variant.checkManifest.dependsOn prepareObjDir
+}
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/docs/gradle.rst
@@ -0,0 +1,98 @@
+.. -*- Mode: rst; fill-column: 80; -*-
+
+======================
+ Building with Gradle
+======================
+
+Instructions
+============
+
+.. code-block:: shell
+
+ ./mach build && ./mach package
+ cd $OBJDIR/mobile/android
+ ./gradlew build
+
+The debug APK will be at
+``$OBJDIR/mobile/android/gradle/app/build/outputs/apk/app-debug.apk``.
+
+The ``$OBJDIR/mobile/android/gradle`` directory can be imported into IntelliJ as
+follows:
+
+- File > Import Project
+- [select ``$OBJDIR/mobile/android/gradle``]
+- Import project from external model > Gradle
+- [select Use default Gradle wrapper]
+
+When prompted, do not add any files to git. You may need to re-open the
+project, or restart IntelliJ, to pick up a compiler language-level change.
+
+Technical overview
+==================
+
+Caveats
+-------
+
+* The Gradle build will "succeed" but crash on start up if the object directory
+ has not been properly packaged.
+* Changes to preprocessed source code and resources (namely, ``strings.xml.in``
+ and the accompanying DTD files) may not be recognized.
+* There's minimal support for editing JavaScript.
+* There's no support for editing C/C++.
+
+How the Gradle project is laid out
+----------------------------------
+
+To the greatest extent possible, the Gradle configuration lives in the source
+directory. The only Gradle configuration that lives in the object directory is
+installed when building the ``mobile/android/gradle`` directory.
+
+At the time of writing, their are three sub-modules: *app*, *base*, and *thirdparty*.
+
+*app* is the Fennec wrapper; it generates the **org.mozilla.fennec.R** resource
+package. *base* is the Gecko code; it generates the **org.mozilla.gecko.R**
+resource package. Together, *app* and *base* address the "two package
+namespaces" that has plagued Fennec from day one.
+
+Due to limitations in the Android Gradle plugin, all test code is shoved into
+the *app* module. (The issue is that, at the time of writing, there is no
+support for test-only APKs.) For no particular reason, the compiled C/C++
+libraries are included in the *app* module; they could be included in the *base*
+module. I expect *base* to rebuilt slightly more frequently than *app*, so I'm
+hoping this choice will allow for faster incremental builds.
+
+*thirdparty* is the external code we use in Fennec; it's built as an Android
+library but uses no resources. It's separate simply to allow the build system
+to cache the compiled and pre-dexed artifacts, hopefully allowing for faster
+incremental builds.
+
+Recursive make backend details
+------------------------------
+
+The ``mobile/android/gradle`` directory writes the following into
+``$OBJDIR/mobile/android/gradle``:
+
+1) the Gradle wrapper;
+2) ``gradle.properties``;
+3) symlinks to certain source and resource directories.
+
+The Gradle wrapper is written to make it easy to build with Gradle from the
+object directory. The wrapper is `intended to be checked into version
+control`_.
+
+``gradle.properties`` is the single source of per-object directory Gradle
+configuration, and provides the Gradle configuration access to
+configure/moz.build variables.
+
+The symlinks are not necessary for the Gradle build itself, but they prevent
+nested directory errors and incorrect Java package scoping when the Gradle
+project is imported into IntelliJ. Because IntelliJ treats the Gradle project
+as authoritative, it's not sufficient to fix these manually in IntelliJ after
+the initial import -- IntelliJ reverts to the Gradle configuration after every
+build. Since there aren't many symlinks, I've done them in the Makefile rather
+than at a higher level of abstraction (like a moz.build definition, or a custom
+build backend). In future, I expect to be able to remove all such symlinks by
+making our in-tree directory structures agree with what Gradle and IntelliJ
+expect.
+
+.. _intended to be checked into version control: http://www.gradle.org/docs/current/userguide/gradle_wrapper.html
--- a/mobile/android/base/docs/index.rst
+++ b/mobile/android/base/docs/index.rst
@@ -1,160 +1,10 @@
===================
Firefox for Android
===================
-UI Telemetry
-============
-
-Fennec records UI events using a telemetry framework called UITelemetry.
-
-Some links:
-
-- `Project page <https://wiki.mozilla.org/Mobile/Projects/Telemetry_probes_for_Fennec_UI_elements>`_
-- `Wiki page <https://wiki.mozilla.org/Mobile/Fennec/Android/UITelemetry>`_
-- `User research notes <https://wiki.mozilla.org/Mobile/User_Experience/Research>`_
-
-Sessions
-========
-
-**Sessions** are essentially scopes. They are meant to provide context to
-events; this allows events to be simpler and more reusable. Sessions are
-usually bound to some component of the UI, some user action with a duration, or
-some transient state.
-
-For example, a session might be begun when a user begins interacting with a
-menu, and stopped when the interaction ends. Or a session might encapsulate
-period of no network connectivity, the first five seconds after the browser
-launched, the time spent with an active download, or a guest mode session.
-
-Sessions implicitly record the duration of the interaction.
-
-A simple use-case for sessions is the bookmarks panel in about:home. We start a
-session when the user swipes into the panel, and stop it when they swipe away.
-This bookmarks session does two things: firstly, it gives scope to any generic
-event that may occur within the panel (*e.g.*, loading a URL). Secondly, it
-allows us to figure out how much time users are spending in the bookmarks
-panel.
-
-To start a session, call ``Telemetry.startUISession(String sessionName)``.
-
-``sessionName``
- The name of the session. Session names should be brief, lowercase, and should describe which UI
- component the user is interacting with. In certain cases where the UI component is dynamic, they could include an ID, essential to identifying that component. An example of this is dynamic home panels: we use session names of the format ``homepanel:<panel_id>`` to identify home panel sessions.
-
-To stop a session, call ``Telemetry.stopUISession(String sessionName, String reason)``.
-
-``sessionName``
- The name of the open session
-
-``reason`` (Optional)
- A descriptive cause for ending the session. It should be brief, lowercase, and generic so it can be reused in different places. Examples reasons are:
-
- ``switched``
- The user transitioned to a UI element of equal level.
-
- ``exit``
- The user left for an entirely different element.
-
-Events
-======
-
-Events capture key occurrences. They should be brief and simple, and should not contain sensitive or excess information. Context for events should come from the session (scope). An event can be created with four fields (via ``Telemetry.sendUIEvent``): ``action``, ``method``, ``extras``, and ``timestamp``.
-
-``action``
- The name of the event. Should be brief and lowercase. If needed, you can make use of namespacing with a '``.``' separator. Example event names: ``panel.switch``, ``panel.enable``, ``panel.disable``, ``panel.install``.
-
-``method`` (Optional)
- Used for user actions that can be performed in many ways. This field specifies the method by which the action was performed. For example, users can add an item to their reading list either by long-tapping the reader icon in the address bar, or from within reader mode. We would use the same event name for both user actions but specify two methods: ``addressbar`` and ``readermode``.
-
-``extras`` (Optional)
- For extra information that may be useful in understanding the event. Make an effort to keep this brief.
-
-``timestamp`` (Optional)
- The time at which the event occurred. If not specified, this field defaults to the current value of the realtime clock.
-
-Versioning
-========
-
-As a we improve on our Telemetry methods, it is foreseeable that our probes will change over time. Different versions of a probe could carry different data or have different interpretations on the server-side. To make it easier for the server to handle these changes, you should add version numbers to your event and session names. An example of a versioned session is ``homepanel.1``; this is version 1 of the ``homepanel`` session. This approach should also be applied to event names, an example being: ``panel.enable.1`` and ``panel.enable.2``.
-
+.. toctree::
+ :maxdepth: 1
-Clock
-=====
-
-Times are relative to either elapsed realtime (an arbitrary monotonically increasing clock that continues to tick when the device is asleep), or elapsed uptime (which doesn't tick when the device is in deep sleep). We default to elapsed realtime.
-
-See the documentation in `the source <http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/Telemetry.java>`_ for more details.
-
-Dictionary
-==========
-
-Events
-------
-``action.1``
- Generic action, usually for tracking menu and toolbar actions.
-
-``cancel.1``
- Cancel a state, action, etc.
-
-``cast.1``
- Start casting a video.
-
-``edit.1``
- Sent when the user edits a top site.
-
-``launch.1``
- Launching (opening) an external application.
- Note: Only used in JavaScript for now.
-
-``loadurl.1``
- Loading a URL.
-
-``locale.browser.reset.1``
- When the user chooses "System default" in the browser locale picker.
-
-``locale.browser.selected.1``
- When the user chooses a locale in the browser locale picker. The selected
- locale is provided as the extra.
-
-``locale.browser.unselected.1``
- When the user chose a different locale in the browser locale picker, this
- event is fired with the previous locale as the extra. If the previous locale
- could not be determined, "unknown" is provided.
-
-``setdefault.1``
- Set default home panel.
-
-``pin.1``, ``unpin.1``
- Sent when the user pinned or unpinned a top site.
-
-``policynotification.success.1:true``
- Sent when a user has accepted the data notification policy. Can be ``false``
- instead of ``true`` if an error occurs.
-
-``sanitize.1``
- Sent when the user chooses to clear private data.
-
-``save.1`` ``unsave.1``
- Saving or unsaving a resource (reader, bookmark, etc.) for viewing later.
- Note: Only used in JavaScript for now.
-
-``search.1``
- Sent when the user performs a search. Currently used in the search activity.
-
-``share.1``
- Sharing content.
-
-Methods
--------
-``banner``
- Action triggered from a banner (such as HomeBanner).
- Note: Only used in JavaScript for now.
-
-``content``
- Action triggered from a content page.
-
-Sessions
---------
-``searchactivity.1``
- Started when the user launches the search activity (onStart) and stopped
- when they leave the search activity.
+ localeswitching
+ uitelemetry
+ gradle
--- a/mobile/android/base/docs/localeswitching.rst
+++ b/mobile/android/base/docs/localeswitching.rst
@@ -1,11 +1,13 @@
-==================================
-Runtime locale switching in Fennec
-==================================
+.. -*- Mode: rst; fill-column: 80; -*-
+
+====================================
+ Runtime locale switching in Fennec
+====================================
`Bug 917480 <https://bugzilla.mozilla.org/show_bug.cgi?id=917480>`_ built on `Bug 936756 <https://bugzilla.mozilla.org/show_bug.cgi?id=936756>`_ to allow users to switch between supported locales at runtime, within Fennec, without altering the system locale.
This document aims to describe the overall architecture of the solution, along with guidelines for Fennec developers.
Overview
========
copy from mobile/android/base/docs/index.rst
copy to mobile/android/base/docs/uitelemetry.rst
--- a/mobile/android/base/docs/index.rst
+++ b/mobile/android/base/docs/uitelemetry.rst
@@ -1,14 +1,13 @@
-===================
-Firefox for Android
-===================
+.. -*- Mode: rst; fill-column: 80; -*-
-UI Telemetry
-============
+==============
+ UI Telemetry
+==============
Fennec records UI events using a telemetry framework called UITelemetry.
Some links:
- `Project page <https://wiki.mozilla.org/Mobile/Projects/Telemetry_probes_for_Fennec_UI_elements>`_
- `Wiki page <https://wiki.mozilla.org/Mobile/Fennec/Android/UITelemetry>`_
- `User research notes <https://wiki.mozilla.org/Mobile/User_Experience/Research>`_
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/gradle_AndroidManifest.xml
@@ -0,0 +1,4 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="org.mozilla.gecko">
+
+</manifest>
new file mode 100644
--- /dev/null
+++ b/mobile/android/gradle/Makefile.in
@@ -0,0 +1,57 @@
+# 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/.
+
+gradle := \
+ gradle.properties.in \
+ $(NULL)
+
+gradle_PATH := $(CURDIR)
+gradle_FLAGS += -Dtopsrcdir=$(abspath $(topsrcdir))
+gradle_FLAGS += -Dtopobjdir=$(abspath $(DEPTH))
+gradle_KEEP_PATH := 1
+PP_TARGETS += gradle
+
+wrapper_FILES := \
+ build.gradle \
+ settings.gradle \
+ gradle/wrapper/gradle-wrapper.jar \
+ gradle/wrapper/gradle-wrapper.properties \
+ gradlew \
+ $(NULL)
+
+wrapper_DEST := $(CURDIR)
+wrapper_KEEP_PATH := 1
+INSTALL_TARGETS += wrapper
+
+base/src/main/java/org/mozilla/gecko:
+ $(NSINSTALL) -D ${@D}
+ ln -s $(topsrcdir)/mobile/android/base $@
+libs:: base/src/main/java/org/mozilla/gecko
+
+base/src/main/res:
+ $(NSINSTALL) -D ${@D}
+ ln -s $(topsrcdir)/mobile/android/base/resources $@
+libs:: base/src/main/res
+
+app/src/androidTest/robocop_harness/java/org/mozilla/gecko:
+ $(NSINSTALL) -D ${@D}
+ ln -s $(topsrcdir)/build/mobile/robocop $@
+libs:: app/src/androidTest/robocop_harness/java/org/mozilla/gecko
+
+app/src/androidTest/robocop/java/org/mozilla/gecko/tests:
+ $(NSINSTALL) -D ${@D}
+ ln -s $(topsrcdir)/mobile/android/base/tests $@
+libs:: app/src/androidTest/robocop/java/org/mozilla/gecko/tests
+
+app/src/androidTest/browser/java/org/mozilla/gecko:
+ $(NSINSTALL) -D ${@D}
+ ln -s $(topsrcdir)/mobile/android/tests/browser/junit3/src $@
+libs:: app/src/androidTest/browser/java/org/mozilla/gecko
+
+app/src/androidTest/background/java/org/mozilla/gecko/background:
+ $(NSINSTALL) -D ${@D}
+ ln -s $(topsrcdir)/mobile/android/tests/background/junit3/src $@
+libs:: app/src/androidTest/background/java/org/mozilla/gecko/background
+
+include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/mobile/android/gradle/build.gradle
@@ -0,0 +1,23 @@
+buildDir = "${topobjdir}/mobile/android/gradle/build"
+
+ext {
+ compileSdkVersion = "${compileSdkVersion}"
+ buildToolsVersion = "${buildToolsVersion}"
+
+ targetSdkVersion = "${targetSdkVersion}"
+ minSdkVersion = "${minSdkVersion}"
+}
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:0.12.2'
+ }
+}
+
+repositories {
+ jcenter()
+}
new file mode 100644
--- /dev/null
+++ b/mobile/android/gradle/gradle.properties.in
@@ -0,0 +1,15 @@
+#filter substitution
+topsrcdir=@topsrcdir@
+topobjdir=@topobjdir@
+compileSdkVersion=android-@ANDROID_TARGET_SDK@
+buildToolsVersion=20.0.0
+targetSdkVersion=@ANDROID_TARGET_SDK@
+minSdkVersion=@MOZ_ANDROID_MIN_SDK_VERSION@
+#ifdef MOZ_ANDROID_MAX_SDK_VERSION
+maxSdkVersion=@MOZ_ANDROID_MAX_SDK_VERSION@
+#endif
+#if MOZ_CRASHREPORTER
+MOZ_CRASHREPORTER=true
+#else
+MOZ_CRASHREPORTER=false
+#endif
new file mode 100644
index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd
GIT binary patch
literal 49896
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
new file mode 100644
--- /dev/null
+++ b/mobile/android/gradle/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Apr 10 15:27:10 PDT 2013
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
new file mode 100755
--- /dev/null
+++ b/mobile/android/gradle/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
new file mode 100644
--- /dev/null
+++ b/mobile/android/gradle/moz.build
@@ -0,0 +1,5 @@
+# -*- Mode: python; c-basic-offset: 4; 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/.
new file mode 100644
--- /dev/null
+++ b/mobile/android/gradle/settings.gradle
@@ -0,0 +1,8 @@
+include ':app'
+project(':app').projectDir = new File("${topsrcdir}/mobile/android/app")
+
+include ':base'
+project(':base').projectDir = new File("${topsrcdir}/mobile/android/base")
+
+include ':thirdparty'
+project(':thirdparty').projectDir = new File("${topsrcdir}/mobile/android/thirdparty")
--- a/mobile/android/moz.build
+++ b/mobile/android/moz.build
@@ -19,16 +19,17 @@ DIRS += [
'chrome',
'components',
'modules',
'themes/core',
'app',
'fonts',
'geckoview_library',
'extensions',
+ 'gradle',
]
if not CONFIG['LIBXUL_SDK']:
DIRS += ['../../xulrunner/tools/redit']
TEST_DIRS += [
'tests',
]
new file mode 100644
--- /dev/null
+++ b/mobile/android/thirdparty/build.gradle
@@ -0,0 +1,49 @@
+project.buildDir = "${topobjdir}/mobile/android/gradle/thirdparty/build"
+
+apply plugin: 'android-library'
+
+android {
+ compileSdkVersion rootProject.ext.compileSdkVersion
+ buildToolsVersion rootProject.ext.buildToolsVersion
+
+ defaultConfig {
+ applicationId 'org.mozilla.gecko.thirdparty'
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ }
+
+ buildTypes {
+ release {
+ runProguard false
+ proguardFile getDefaultProguardFile('proguard-android.txt')
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_7
+ targetCompatibility JavaVersion.VERSION_1_7
+ }
+
+ android {
+ lintOptions {
+ abortOnError false
+ }
+ }
+
+ sourceSets {
+ main {
+ manifest {
+ srcFile 'gradle_AndroidManifest.xml'
+ }
+
+ java {
+ srcDir "."
+ }
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ compile 'com.android.support:support-v4:19.1.+'
+}
new file mode 100644
--- /dev/null
+++ b/mobile/android/thirdparty/gradle_AndroidManifest.xml
@@ -0,0 +1,4 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="org.mozilla.gecko.thirdparty">
+
+</manifest>