Bug 1411802 - Build stylo on Android as default. r=nalexander,snorp,jryans
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>
Sun, 29 Oct 2017 22:56:41 +0900
changeset 388924 c1c3b82079a5
parent 388923 3f387c200939
child 388925 1e4f10cea5e7
push id32770
push userarchaeopteryx@coole-files.de
push dateSun, 29 Oct 2017 21:53:37 +0000
treeherdermozilla-central@1e4d6c984772 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnalexander, snorp, jryans
bugs1411802
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1411802 - Build stylo on Android as default. r=nalexander,snorp,jryans - Building is nightly channel only. Beta and release for Fennec 58 don't build stylo. It means that the package size for 58 beta/release isn't incremented by this change. - The preference for stylo is still turned off Nightly 58. It will be turned on 59 after fixing some bugs for crashtests and etc. Our target to enable stylo for Android is 59. - ./mach bootstrap already installs clang etc to build stylo and bindgen. Developers for mobile won't require additional build options for this change. MozReview-Commit-ID: CIpYl8I5d7x
mobile/android/config/mozconfigs/common
taskcluster/ci/build/android.yml
toolkit/moz.configure
--- a/mobile/android/config/mozconfigs/common
+++ b/mobile/android/config/mozconfigs/common
@@ -2,16 +2,20 @@
 # 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/.
 
 # This file is included at the top of all native android mozconfigs
 if [ "x$IS_NIGHTLY" = "xyes" ]; then
   MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
 fi
 
+if [ -z "$NO_NDK" ]; then
+  . "$topsrcdir/build/mozconfig.stylo"
+fi
+
 MOZ_AUTOMATION_L10N_CHECK=0
 . "$topsrcdir/build/mozconfig.common"
 
 # For actual Android builds in TaskCluster, the system image is Debian,
 # and we use the Java JRE/JDK from the system, as well as the system
 # GCC for the host compiler.  l10n builds are still special, however:
 # they are run on older CentOS systems, and l10n builds on release are
 # still run on Buildbot.  So we have to set things up so this mozconfig
--- a/taskcluster/ci/build/android.yml
+++ b/taskcluster/ci/build/android.yml
@@ -20,16 +20,17 @@ android-api-16/debug:
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-16-debug
         tooltool-downloads: internal
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-x86/opt:
     description: "Android 4.2 x86 Opt"
     index:
         product: mobile
@@ -51,16 +52,17 @@ android-x86/opt:
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: x86
         tooltool-downloads: internal
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-x86-nightly/opt:
     description: "Android 4.2 x86 Nightly"
     attributes:
         nightly: true
@@ -86,16 +88,17 @@ android-x86-nightly/opt:
             - platform_supports_post_upload_to_latest.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: x86
         tooltool-downloads: internal
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-api-16/opt:
     description: "Android 4.0 api-16+ Opt"
     index:
         product: mobile
@@ -117,16 +120,17 @@ android-api-16/opt:
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-16
         tooltool-downloads: internal
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-api-16-nightly/opt:
     description: "Android 4.0 api-16+ Nightly"
     attributes:
         nightly: true
@@ -152,16 +156,17 @@ android-api-16-nightly/opt:
             - platform_supports_post_upload_to_latest.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-16
         tooltool-downloads: internal
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-x86-old-id/opt:
     description: "Android 4.2 x86 Opt OldId"
     index:
         product: mobile
@@ -184,16 +189,17 @@ android-x86-old-id/opt:
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: x86-old-id
         tooltool-downloads: internal
     run-on-projects: [ 'mozilla-central' ]
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-x86-old-id-nightly/opt:
     description: "Android 4.2 x86 OldId Nightly"
     attributes:
         nightly: true
@@ -220,16 +226,17 @@ android-x86-old-id-nightly/opt:
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: x86-old-id
         tooltool-downloads: internal
     run-on-projects: [ 'mozilla-central' ]
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-api-16-old-id/opt:
     description: "Android 4.0 api-16+ Opt OldId"
     index:
         product: mobile
@@ -252,16 +259,17 @@ android-api-16-old-id/opt:
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-16-old-id
         tooltool-downloads: internal
     run-on-projects: [ 'mozilla-central' ]
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-api-16-old-id-nightly/opt:
     description: "Android 4.0 api-16+ OldId Nightly"
     attributes:
         nightly: true
@@ -288,16 +296,17 @@ android-api-16-old-id-nightly/opt:
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-16-old-id
         tooltool-downloads: internal
     run-on-projects: [ 'mozilla-central' ]
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-api-16-gradle/opt:
     description: "Android 4.0 api-16+ (Gradle) Opt"
     index:
         product: mobile
@@ -332,16 +341,17 @@ android-api-16-gradle/opt:
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-16-gradle
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-aarch64/opt:
     description: "Android 5.0 AArch64 Opt"
     index:
         product: mobile
@@ -363,16 +373,17 @@ android-aarch64/opt:
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: aarch64
         tooltool-downloads: internal
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
 
 android-aarch64-nightly/opt:
     description: "Android 5.0 AArch64 Nightly"
     attributes:
         nightly: true
@@ -398,11 +409,12 @@ android-aarch64-nightly/opt:
             - platform_supports_post_upload_to_latest.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: aarch64
         tooltool-downloads: internal
     toolchains:
         - android-sdk-linux
+        - linux64-clang
         - linux64-rust-android
         - linux64-sccache
         - proguard-jar
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -565,27 +565,29 @@ id_and_secret_keyfile('Leanplum SDK')
 
 simple_keyfile('Pocket API')
 
 # Servo integration
 # ==============================================================
 option('--enable-stylo', nargs='?', choices=('build',),
        help='Include Stylo in the build and/or enable it at runtime')
 
-@depends('--enable-stylo', '--help', target)
-def stylo_config(value, _, target):
+@depends('--enable-stylo', '--help', target, milestone)
+def stylo_config(value, _, target, milestone):
     build_stylo = None
     enable_stylo = None
 
     # If nothing is specified, default to building and enabling Stylo where it
     # is known to work.
     if value.origin == 'default':
+        # Build stylo on Android Nighly, but this is still turned off yet.
         if target.os == 'Android':
-            # Stylo on Android is happening Later(tm).
-            pass
+            if milestone.is_nightly:
+                build_stylo = True
+                enable_stylo = None
         else:
             build_stylo = True
             enable_stylo = True
     elif len(value) and value[0] == 'build':
         # Build but disable by request.
         build_stylo = True
     elif bool(value):
         # Build and enable.