From 6a31864126679486935bd80c5f7f1c8ef7b027ed Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Wed, 11 Jul 2018 15:26:41 +0200 Subject: [PATCH] Update Gradle and SDK --- python/servo/bootstrap_commands.py | 2 +- python/servo/command_base.py | 2 +- python/servo/package_commands.py | 2 +- python/servo/testing_commands.py | 3 +- support/android/apk/build.gradle | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 3 +- .../apk/{app => servoapp}/build.gradle | 84 ++++++++---------- .../src/googlevr/AndroidManifest.xml | 0 .../src/main/AndroidManifest.xml | 0 .../java/com/mozilla/servo/MainActivity.java | 0 .../com/mozilla/servoview/NativeServo.java | 0 .../mozilla/servoview/ServoGLRenderer.java | 0 .../java/com/mozilla/servoview/ServoView.java | 0 .../src/main/res/layout/activity_main.xml | 0 .../src/main/res/mipmap/servo.png | Bin .../src/main/res/values/colors.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/styles.xml | 0 .../src/oculusvr/AndroidManifest.xml | 0 support/android/apk/settings.gradle | 2 +- 20 files changed, 49 insertions(+), 53 deletions(-) rename support/android/apk/{app => servoapp}/build.gradle (78%) rename support/android/apk/{app => servoapp}/src/googlevr/AndroidManifest.xml (100%) rename support/android/apk/{app => servoapp}/src/main/AndroidManifest.xml (100%) rename support/android/apk/{app => servoapp}/src/main/java/com/mozilla/servo/MainActivity.java (100%) rename support/android/apk/{app => servoapp}/src/main/java/com/mozilla/servoview/NativeServo.java (100%) rename support/android/apk/{app => servoapp}/src/main/java/com/mozilla/servoview/ServoGLRenderer.java (100%) rename support/android/apk/{app => servoapp}/src/main/java/com/mozilla/servoview/ServoView.java (100%) rename support/android/apk/{app => servoapp}/src/main/res/layout/activity_main.xml (100%) rename support/android/apk/{app => servoapp}/src/main/res/mipmap/servo.png (100%) rename support/android/apk/{app => servoapp}/src/main/res/values/colors.xml (100%) rename support/android/apk/{app => servoapp}/src/main/res/values/strings.xml (100%) rename support/android/apk/{app => servoapp}/src/main/res/values/styles.xml (100%) rename support/android/apk/{app => servoapp}/src/oculusvr/AndroidManifest.xml (100%) diff --git a/python/servo/bootstrap_commands.py b/python/servo/bootstrap_commands.py index 092d6653d2db..481a6f174e1a 100644 --- a/python/servo/bootstrap_commands.py +++ b/python/servo/bootstrap_commands.py @@ -63,7 +63,7 @@ def bootstrap_android(self): ndk = "android-ndk-r12b-{system}-{arch}" tools = "sdk-tools-{system}-4333796" - sdk_build_tools = "25.0.2" + sdk_build_tools = "27.0.3" emulator_images = [ ("servo-arm", "25", "google_apis;armeabi-v7a"), ("servo-x86", "28", "google_apis;x86"), diff --git a/python/servo/command_base.py b/python/servo/command_base.py index ae04bd077b8e..130494097529 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -333,7 +333,7 @@ def get_target_dir(self): def get_apk_path(self, release): base_path = self.get_target_dir() base_path = path.join(base_path, self.config["android"]["target"]) - apk_name = "servo.apk" + apk_name = "servoapp.apk" build_type = "release" if release else "debug" return path.join(base_path, build_type, apk_name) diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 9b8cb8c6f4f5..57fd986fe1a1 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -42,7 +42,7 @@ PACKAGES = { 'android': [ - 'target/armv7-linux-androideabi/release/servo.apk', + 'target/armv7-linux-androideabi/release/servoapp.apk', ], 'linux': [ 'target/release/servo-tech-demo.tar.gz', diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py index 78147ad62400..1cfddcc1ac77 100644 --- a/python/servo/testing_commands.py +++ b/python/servo/testing_commands.py @@ -607,8 +607,7 @@ def in_android_emulator(self, release, dev): env = self.build_env(target=target) os.environ["PATH"] = env["PATH"] assert self.handle_android_target(target) - binary_path = self.get_binary_path(release, dev, android=True) - apk = binary_path + ".apk" + apk = self.get_apk_path(release) py = path.join(self.context.topdir, "etc", "run_in_headless_android_emulator.py") return [py, avd, apk] diff --git a/support/android/apk/build.gradle b/support/android/apk/build.gradle index 1db454a0be99..8a93ba9b041d 100644 --- a/support/android/apk/build.gradle +++ b/support/android/apk/build.gradle @@ -2,9 +2,10 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' + classpath 'com.android.tools.build:gradle:3.1.3' } } @@ -14,6 +15,7 @@ allprojects { flatDir { dirs rootDir.absolutePath + "/../../../target/android_aar" } + google() } buildDir = rootDir.absolutePath + "/../../../target/gradle" diff --git a/support/android/apk/gradle/wrapper/gradle-wrapper.properties b/support/android/apk/gradle/wrapper/gradle-wrapper.properties index dbdc05d274d7..915f189a922c 100644 --- a/support/android/apk/gradle/wrapper/gradle-wrapper.properties +++ b/support/android/apk/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Wed Jul 11 13:23:08 CEST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/support/android/apk/app/build.gradle b/support/android/apk/servoapp/build.gradle similarity index 78% rename from support/android/apk/app/build.gradle rename to support/android/apk/servoapp/build.gradle index 92af29e9369f..5568bd9e065b 100644 --- a/support/android/apk/app/build.gradle +++ b/support/android/apk/servoapp/build.gradle @@ -6,18 +6,15 @@ import java.util.regex.Matcher import java.util.regex.Pattern android { - compileSdkVersion 25 - buildToolsVersion "25.0.2" + compileSdkVersion 27 + buildToolsVersion '27.0.3' defaultConfig { applicationId "com.mozilla.servo" minSdkVersion 18 - targetSdkVersion 25 + targetSdkVersion 27 versionCode 1 versionName "1.0.0" - jackOptions { - enabled true - } } compileOptions { @@ -33,6 +30,13 @@ android { } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + flavorDimensions "default" + productFlavors { main { } @@ -144,25 +148,27 @@ android { variant.setIgnore(true); } } - + // Define apk output directory applicationVariants.all { variant -> - variant.outputs.each { output -> - def name = variant.buildType.name - output.outputFile = new File(getApkPath(isDebug(name), getArch(name))) + variant.outputs.all { output -> + Pattern pattern = Pattern.compile(/^[\w\d]+([A-Z][\w\d]+)(Debug|Release)/) + Matcher matcher = pattern.matcher(variant.name) + if (!matcher.find()) { + throw "Invalid variant name for output" + } + def arch = matcher.group(1) + def debug = variant.name.contains("Debug") + def path = "../../../../../" + getSubTargetDir(debug, arch) + "/servoapp.apk"; + outputFileName = new File(path) } } // Call our custom NDK Build task using flavor parameters tasks.all { compileTask -> - // Parse architecture name from gradle task name: - // Examples: transformJackWithJackForMainArmv7Release, transformJackWithJackForOculusvrArmv7Release - Pattern pattern = Pattern.compile(/^transformJackWithJackFor[A-Z][\w\d]+([A-Z][\w\d]+)(Debug|Release)/); - Matcher matcher = pattern.matcher(compileTask.name); - // You can use this alternative pattern when jackCompiler is disabled - // Pattern pattern = Pattern.compile(/^compile([\w\d]+)(Debug|Release)/); - // Matcher matcher = pattern.matcher(compileTask.name); + Pattern pattern = Pattern.compile(/^compile[A-Z][\w\d]+([A-Z][\w\d]+)(Debug|Release)/) + Matcher matcher = pattern.matcher(compileTask.name) if (!matcher.find()) { return } @@ -188,18 +194,17 @@ android { dependencies { //Dependency list def deps = [ - new ServoDependency("blurdroid.jar", "blurdroid") + new ServoDependency("blurdroid.jar", "blurdroid") ] - // Iterate all build types and dependencies - // For each dependency call the proper compile command and set the correct dependency path + // For each dependency call the proper implementation command and set the correct dependency path def list = ['arm', 'armv7', 'arm64', 'x86'] for (arch in list) { for (debug in [true, false]) { String basePath = getTargetDir(debug, arch) + "/build" - String cmd = arch + (debug ? "Debug" : "Release") + "Compile" + String cmd = arch + (debug ? "Debug" : "Release") + "Implementation" - for (ServoDependency dep: deps) { + for (ServoDependency dep : deps) { String path = findDependencyPath(basePath, dep.fileName, dep.folderFilter) if (path) { "${cmd}" files(path) @@ -207,38 +212,27 @@ dependencies { } } } - - googlevrCompile 'com.google.vr:sdk-base:1.70.0' - googlevrCompile(name:'GVRService', ext:'aar') - oculusvrCompile(name:'OVRService', ext:'aar') - - // compile is deprecated. Will become "implementation" once we upgrade graddle. - compile 'com.android.support.constraint:constraint-layout:1.0.0' + googlevrImplementation 'com.google.vr:sdk-base:1.140.0' + googlevrImplementation(name: 'GVRService', ext: 'aar') + oculusvrImplementation(name: 'OVRService', ext: 'aar') + implementation 'com.android.support.constraint:constraint-layout:1.1.2' } // Utility methods String getTargetDir(boolean debug, String arch) { def basePath = project.rootDir.getParentFile().getParentFile().getParentFile().absolutePath - return basePath + '/target/' + getRustTarget(arch) + '/' + (debug ? 'debug' : 'release') + return basePath + '/target/' + getSubTargetDir(debug, arch) } -String getApkPath(boolean debug, String arch) { - return getTargetDir(debug, arch) + '/servo.apk' +String getSubTargetDir(boolean debug, String arch) { + return getRustTarget(arch) + '/' + (debug ? 'debug' : 'release') } String getJniLibsPath(boolean debug, String arch) { return getTargetDir(debug, arch) + '/apk/jniLibs' } -String getArch(String buildType) { - return buildType.replaceAll(/(Debug|Release)/, '') -} - -boolean isDebug(String buildType) { - return buildType.contains("Debug") -} - -String getRustTarget(String arch) { +static String getRustTarget(String arch) { switch (arch.toLowerCase()) { case 'arm' : return 'arm-linux-androideabi' case 'armv7' : return 'armv7-linux-androideabi' @@ -248,7 +242,7 @@ String getRustTarget(String arch) { } } -String getNDKAbi(String arch) { +static String getNDKAbi(String arch) { switch (arch.toLowerCase()) { case 'arm' : return 'armeabi' case 'armv7' : return 'armeabi-v7a' @@ -286,7 +280,7 @@ String getNdkDir() { } // folderFilter can be used to improve search performance -String findDependencyPath(String basePath, String filename, String folderFilter) { +static String findDependencyPath(String basePath, String filename, String folderFilter) { File path = new File(basePath); if (!path.exists()) { return '' @@ -310,10 +304,10 @@ String findDependencyPath(String basePath, String filename, String folderFilter) } class ServoDependency { - public ServoDependency(String fileName, String folderFilter = null) { + ServoDependency(String fileName, String folderFilter = null) { this.fileName = fileName; this.folderFilter = folderFilter; } public String fileName; public String folderFilter; -} +} \ No newline at end of file diff --git a/support/android/apk/app/src/googlevr/AndroidManifest.xml b/support/android/apk/servoapp/src/googlevr/AndroidManifest.xml similarity index 100% rename from support/android/apk/app/src/googlevr/AndroidManifest.xml rename to support/android/apk/servoapp/src/googlevr/AndroidManifest.xml diff --git a/support/android/apk/app/src/main/AndroidManifest.xml b/support/android/apk/servoapp/src/main/AndroidManifest.xml similarity index 100% rename from support/android/apk/app/src/main/AndroidManifest.xml rename to support/android/apk/servoapp/src/main/AndroidManifest.xml diff --git a/support/android/apk/app/src/main/java/com/mozilla/servo/MainActivity.java b/support/android/apk/servoapp/src/main/java/com/mozilla/servo/MainActivity.java similarity index 100% rename from support/android/apk/app/src/main/java/com/mozilla/servo/MainActivity.java rename to support/android/apk/servoapp/src/main/java/com/mozilla/servo/MainActivity.java diff --git a/support/android/apk/app/src/main/java/com/mozilla/servoview/NativeServo.java b/support/android/apk/servoapp/src/main/java/com/mozilla/servoview/NativeServo.java similarity index 100% rename from support/android/apk/app/src/main/java/com/mozilla/servoview/NativeServo.java rename to support/android/apk/servoapp/src/main/java/com/mozilla/servoview/NativeServo.java diff --git a/support/android/apk/app/src/main/java/com/mozilla/servoview/ServoGLRenderer.java b/support/android/apk/servoapp/src/main/java/com/mozilla/servoview/ServoGLRenderer.java similarity index 100% rename from support/android/apk/app/src/main/java/com/mozilla/servoview/ServoGLRenderer.java rename to support/android/apk/servoapp/src/main/java/com/mozilla/servoview/ServoGLRenderer.java diff --git a/support/android/apk/app/src/main/java/com/mozilla/servoview/ServoView.java b/support/android/apk/servoapp/src/main/java/com/mozilla/servoview/ServoView.java similarity index 100% rename from support/android/apk/app/src/main/java/com/mozilla/servoview/ServoView.java rename to support/android/apk/servoapp/src/main/java/com/mozilla/servoview/ServoView.java diff --git a/support/android/apk/app/src/main/res/layout/activity_main.xml b/support/android/apk/servoapp/src/main/res/layout/activity_main.xml similarity index 100% rename from support/android/apk/app/src/main/res/layout/activity_main.xml rename to support/android/apk/servoapp/src/main/res/layout/activity_main.xml diff --git a/support/android/apk/app/src/main/res/mipmap/servo.png b/support/android/apk/servoapp/src/main/res/mipmap/servo.png similarity index 100% rename from support/android/apk/app/src/main/res/mipmap/servo.png rename to support/android/apk/servoapp/src/main/res/mipmap/servo.png diff --git a/support/android/apk/app/src/main/res/values/colors.xml b/support/android/apk/servoapp/src/main/res/values/colors.xml similarity index 100% rename from support/android/apk/app/src/main/res/values/colors.xml rename to support/android/apk/servoapp/src/main/res/values/colors.xml diff --git a/support/android/apk/app/src/main/res/values/strings.xml b/support/android/apk/servoapp/src/main/res/values/strings.xml similarity index 100% rename from support/android/apk/app/src/main/res/values/strings.xml rename to support/android/apk/servoapp/src/main/res/values/strings.xml diff --git a/support/android/apk/app/src/main/res/values/styles.xml b/support/android/apk/servoapp/src/main/res/values/styles.xml similarity index 100% rename from support/android/apk/app/src/main/res/values/styles.xml rename to support/android/apk/servoapp/src/main/res/values/styles.xml diff --git a/support/android/apk/app/src/oculusvr/AndroidManifest.xml b/support/android/apk/servoapp/src/oculusvr/AndroidManifest.xml similarity index 100% rename from support/android/apk/app/src/oculusvr/AndroidManifest.xml rename to support/android/apk/servoapp/src/oculusvr/AndroidManifest.xml diff --git a/support/android/apk/settings.gradle b/support/android/apk/settings.gradle index e7b4def49cb5..9c4a80cb7921 100644 --- a/support/android/apk/settings.gradle +++ b/support/android/apk/settings.gradle @@ -1 +1 @@ -include ':app' +include ':servoapp'