aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/servo/package_commands.py13
-rw-r--r--support/android/apk/servoview/build.gradle41
2 files changed, 51 insertions, 3 deletions
diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py
index 288477de1f2..54505d3afd4 100644
--- a/python/servo/package_commands.py
+++ b/python/servo/package_commands.py
@@ -198,7 +198,12 @@ class PackageCommands(CommandBase):
@CommandArgument('--flavor', '-f',
default=None,
help='Package using the given Gradle flavor')
- def package(self, release=False, dev=False, android=None, debug=False, debugger=None, target=None, flavor=None):
+ @CommandArgument('--maven',
+ default=None,
+ action='store_true',
+ help='Create a local Maven repository')
+ def package(self, release=False, dev=False, android=None, debug=False,
+ debugger=None, target=None, flavor=None, maven=False):
if android is None:
android = self.config["build"]["android"]
if target and android:
@@ -235,9 +240,13 @@ class PackageCommands(CommandBase):
variant = ":assemble" + flavor_name + build_type + build_mode
apk_task_name = ":servoapp" + variant
aar_task_name = ":servoview" + variant
+ maven_task_name = ":servoview:uploadArchive"
+ argv = ["./gradlew", "--no-daemon", apk_task_name, aar_task_name]
+ if maven:
+ argv.append(maven_task_name)
try:
with cd(path.join("support", "android", "apk")):
- subprocess.check_call(["./gradlew", "--no-daemon", apk_task_name, aar_task_name], env=env)
+ subprocess.check_call(argv, env=env)
except subprocess.CalledProcessError as e:
print("Packaging Android exited with return value %d" % e.returncode)
return e.returncode
diff --git a/support/android/apk/servoview/build.gradle b/support/android/apk/servoview/build.gradle
index cf227e6a52f..4f9a4f47744 100644
--- a/support/android/apk/servoview/build.gradle
+++ b/support/android/apk/servoview/build.gradle
@@ -18,7 +18,7 @@ android {
}
compileOptions {
- incremental false
+ incremental false
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
@@ -259,3 +259,42 @@ class ServoDependency {
public String fileName;
public String folderFilter;
}
+
+apply plugin: 'maven'
+import org.gradle.api.internal.artifacts.publish.DefaultPublishArtifact
+
+uploadArchives {
+ doFirst {
+ for ( arch in ["arm", "armv7", "arm64", "x86"] ) {
+ def target = getTargetDir(false, arch)
+ def aar = new File(target, "servoview.aar")
+ if (aar.exists()) {
+ def art = new DefaultPublishArtifact("servoview-" + arch, "aar", "aar", null, new Date(), aar);
+ project.artifacts.add('archives', art)
+ }
+ }
+ }
+ repositories.mavenDeployer {
+ repository(url: "file://localhost/${buildDir}/maven")
+ def cmd = "git rev-parse --short HEAD"
+ def proc = cmd.execute()
+ def commit = proc.text.trim()
+ def version = "0.0.1." + new Date().format('yyyyMMdd') + "." + commit
+ for ( arch_ in ["arm", "armv7", "arm64", "x86"] ) {
+ def arch = arch_
+ addFilter(arch) {artifact, file -> artifact.name == "servoview-" + arch}
+ pom(arch).artifactId = "servoview-" + arch
+ pom(arch).groupId = 'org.mozilla.servoview'
+ pom(arch).version = version
+ pom(arch).project {
+ licenses {
+ license {
+ name 'The Mozilla Public License, v. 2.0'
+ url 'http://mozilla.org/MPL/2.0/'
+ distribution 'repo'
+ }
+ }
+ }
+ }
+ }
+}