diff options
Diffstat (limited to 'mobile/android/docs/geckoview/contributor/geckoview-quick-start.rst')
-rw-r--r-- | mobile/android/docs/geckoview/contributor/geckoview-quick-start.rst | 136 |
1 files changed, 4 insertions, 132 deletions
diff --git a/mobile/android/docs/geckoview/contributor/geckoview-quick-start.rst b/mobile/android/docs/geckoview/contributor/geckoview-quick-start.rst index 140dd62784..d111f54b01 100644 --- a/mobile/android/docs/geckoview/contributor/geckoview-quick-start.rst +++ b/mobile/android/docs/geckoview/contributor/geckoview-quick-start.rst @@ -19,141 +19,13 @@ project. If you want to get started using GeckoView in your app then you should refer to the `wiki <https://wiki.mozilla.org/Mobile/GeckoView#Get_Started>`_. -Get set up with Mozilla Central -------------------------------- - -The GeckoView codebase is part of the main Firefox tree and can be found -in ``mozilla-central``. You will need to get set up as a contributor to -Firefox in order to contribute to GeckoView. To get set up with -``mozilla-central``, follow the `Quick Start Guide for Git -Users <mc-quick-start.html>`_, or the `Contributing to the Mozilla code -base <https://firefox-source-docs.mozilla.org/setup/contributing_code.html>`_ -guide and `Firefox Contributors’ Quick Reference -<https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html>`_ -for Mercurial users. - -Once you have a copy of ``mozilla-central``, you will need to build -GeckoView. - -Bootstrap Gecko ---------------- - -Bootstrap configures everything for GeckoView and Fennec (Firefox for Android) development. - -- Ensure you have ``mozilla-central`` checked out. If this is the first - time you are doing this, it may take some time. - -.. code:: bash - - git checkout central/default - -If you are on a mac, you will need to have the Xcode build tools -installed. You can do this by either `installing -Xcode <https://developer.apple.com/xcode/>`__ or installing only the -tools from the command line by running ``xcode-select --install`` and -following the on screen instructions. - -You will need to ``bootstrap`` for GeckoView/Firefox for Android. The easiest way is to run the following command: - -.. code:: bash - - ./mach --no-interactive bootstrap --application-choice="GeckoView/Firefox for Android" - -.. note:: - - - The ``--no-interactive`` argument will make ``bootstrap`` run start to finish without requiring any input from you. It will automatically accept any license agreements. - - The ``--application-choice="GeckoView/Firefox for Android"`` argument is needed when using ``--no-interactive`` so that "bootstrapping" is done for the correct application (instead of the default). - - If you want to make all the selections yourself and/or read through the license agreements, you can simply run: - - .. code:: bash - - ./mach bootstrap - - Select ``4. GeckoView/Firefox for Android`` when prompted and respond to any subsequent prompts as they appear. - -Once ``./mach bootstrap`` is complete, it will automatically write -the configuration into a new ``mozconfig`` file. If you already -have a ``mozconfig``, ``mach`` will instead output new configuration -that you should append to your existing file. - -Build from the command line ---------------------------- - -In order to pick up the configuration changes we just made we need to -build from the command line. This will update generated sources, compile -native code, and produce GeckoView AARs and example and test APKs. - -.. code:: bash - - ./mach build - -Build Using Android Studio --------------------------- - -- Install `Android - Studio <https://developer.android.com/studio/install>`_. -- Choose File->Open from the toolbar -- Navigate to the root of your ``mozilla-central`` source directory and - click “Open” -- Click yes if it asks if you want to use the gradle wrapper. - - - If the gradle sync does not automatically start, select File > - Sync Project with Gradle Files. - -- Wait for the project to index and gradle to sync. Once synced, the - workspace will reconfigure to display the different projects. - - - annotations contains custom Java annotations used inside GeckoView - - app contains geckoview build settings and omnijar. omnijar contains - the parts of Gecko and GeckoView that are not written in Java or Kotlin - - geckoview is the GeckoView project. Here is all the Java files - related to GeckoView - - geckoview_example is an example browser built using GeckoView. - - |alt text 1| - -Now you’re set up and ready to go. - -**Important: at this time, building from Android Studio or directly from -Gradle does not (re-)compile native code, including C++ and Rust.** This -means you will need to run ``mach build`` yourself to pick up changes to -native code. `Bug -1509539 <https://bugzilla.mozilla.org/show_bug.cgi?id=1509539>`_ tracks -making Android Studio and Gradle do this automatically. - -If you want set up code formatting for Kotlin, please reference -`IntelliJ IDEA configuration -<https://pinterest.github.io/ktlint/rules/configuration-intellij-idea/>`_. - -Custom mozconfig with Android Studio ------------------------------------- - -Out of the box, Android Studio will use the default mozconfig file, normally -located at ``mozconfig`` in the root directory of your ``mozilla-central`` -checkout. - -To make Android Studio use a mozconfig in a custom location, you can add the -following to your ``local.properties``: - -:: - - mozilla-central.mozconfig=relative/path/to/mozconfig - -Note that, when running mach from the command line, this value will be ignored, -and the mozconfig from the mach environment will be used instead. - -To override the mozconfig used by mach, you can use the `MOZCONFIG` environment -variable, for example: - -:: - - MOZCONFIG=debug.mozconfig ./mach build - Performing a bug fix -------------------- -One you have got GeckoView building and running, you will want to start +As a first step, you need to set up :ref:`mozilla-central <mozilla-central-setup>`, +and :ref:`Bootstrap <bootstrap-setup>` and build the project. + +Once you have got GeckoView building and running, you will want to start contributing. There is a general guide to `Performing a Bug Fix for Git Developers <contributing-to-mc.html>`_ for you to follow. To contribute to GeckoView specifically, you will need the following additional |