diff options
Diffstat (limited to 'build.gradle')
-rw-r--r-- | build.gradle | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/build.gradle b/build.gradle index a678d769b..e9bfe8e32 100644 --- a/build.gradle +++ b/build.gradle @@ -88,6 +88,12 @@ sourceSets { } output.resourcesDir = 'build/classes/examplesAndroidO' } + examplesAndroidP { + java { + srcDirs = ['src/test/examplesAndroidP'] + } + output.resourcesDir = 'build/classes/examplesAndroidP' + } jctfCommon { java { srcDirs = [ @@ -145,6 +151,7 @@ dependencies { jctfTestsCompile 'junit:junit:4.12' jctfTestsCompile sourceSets.jctfCommon.output examplesAndroidOCompile group: 'org.ow2.asm', name: 'asm', version: '6.0_BETA' + examplesAndroidPCompile group: 'org.ow2.asm', name: 'asm', version: '6.0_BETA' examplesCompile 'com.google.protobuf:protobuf-lite:3.0.0' examplesRuntime 'com.google.protobuf:protobuf-lite:3.0.0' supportLibs 'com.android.support:support-v4:25.4.0' @@ -185,7 +192,7 @@ def osString = OperatingSystem.current().isLinux() ? "linux" : def cloudDependencies = [ "tests" : [ - "2017-07-27/art", + "2017-10-04/art", "2016-12-19/art" ], "third_party": [ @@ -557,7 +564,7 @@ artifacts { task createArtTests(type: Exec) { def outputDir = "build/generated/test/java/com/android/tools/r8/art" def createArtTestsScript = "tools/create_art_tests.py" - inputs.file "tests/2017-07-27/art.tar.gz" + inputs.file "tests/2017-10-04/art.tar.gz" inputs.file createArtTestsScript outputs.dir outputDir dependsOn downloadDeps @@ -887,6 +894,51 @@ task buildExampleAndroidOJars { } } +task buildExampleAndroidPJars { + dependsOn downloadDeps + def examplesDir = file("src/test/examplesAndroidP") + + task "compile_examplesAndroidP"(type: JavaCompile) { + source = fileTree(dir: examplesDir, include: '**/*.java') + destinationDir = file("build/test/examplesAndroidP/classes") + classpath = sourceSets.main.compileClasspath + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + options.compilerArgs += ["-Xlint:-options"] + } + examplesDir.eachDir { dir -> + def name = dir.getName(); + def destinationDir = file("build/test/examplesAndroidP/classes"); + if (file("src/test/examplesAndroidP/" + name + "/TestGenerator.java").isFile()) { + task "generate_examplesAndroidP_${name}"(type: JavaExec, + dependsOn: "compile_examplesAndroidP") { + main = name + ".TestGenerator" + classpath = files(destinationDir, sourceSets.main.compileClasspath) + args destinationDir + } + } else { + task "generate_examplesAndroidP_${name}" () {} + } + } + examplesDir.eachDir { dir -> + def name = dir.getName(); + def exampleOutputDir = file("build/test/examplesAndroidP"); + def jarName = "${name}.jar" + dependsOn "jar_examplesAndroidP_${name}" + task "jar_examplesAndroidP_${name}"(type: Jar, + dependsOn: ["compile_examplesAndroidP", + "generate_examplesAndroidP_${name}"]) { + archiveName = jarName + destinationDir = exampleOutputDir + from "build/test/examplesAndroidP/classes" // Java 1.8 classes + include "**/" + name + "/**/*.class" + // Do not include generator into the test runtime jar, it is not useful. + // Otherwise, shrinking will need ASM jars. + exclude "**/TestGenerator*" + } + } +} + task buildExamples { if (OperatingSystem.current().isMacOsX() || OperatingSystem.current().isWindows()) { logger.lifecycle("WARNING: Testing (including building examples) is only partially supported on your " + @@ -900,6 +952,7 @@ task buildExamples { dependsOn buildExampleJars dependsOn buildExampleAndroidNJars dependsOn buildExampleAndroidOJars + dependsOn buildExampleAndroidPJars def examplesDir = file("src/test/examples") def noDexTests = [ "multidex", |