Use default compileJava9Java task to build java9 source set

This commit is contained in:
Ilya Gorbunov
2018-04-02 14:16:53 +03:00
committed by Alexander Udalov
parent bd4abaa8bf
commit 299d6fa772
7 changed files with 46 additions and 51 deletions
+6 -4
View File
@@ -596,10 +596,12 @@ fun jdkPath(version: String): String = jdkPathIfFound(version)
fun Project.configureJvmProject(javaHome: String, javaVersion: String) {
tasks.withType<JavaCompile> {
options.isFork = true
options.forkOptions.javaHome = file(javaHome)
options.compilerArgs.add("-proc:none")
options.encoding = "UTF-8"
if (name != "compileJava9Java") {
options.isFork = true
options.forkOptions.javaHome = file(javaHome)
options.compilerArgs.add("-proc:none")
options.encoding = "UTF-8"
}
}
tasks.withType<KotlinCompile> {
+24 -30
View File
@@ -52,6 +52,30 @@ ext.configureJvm6Project = { Project project ->
}
}
ext.compileJava9Sources = { Project project, String moduleName, Collection<FileCollection> moduleOutputs = [project.sourceSets.main.output] ->
// module-info.java should be in java9 source set by convention
SourceDirectorySet java9SourceSet = project.sourceSets.java9.java
project.tasks.getByName("compileJava9Java").configure { JavaCompile it ->
dependsOn(moduleOutputs)
it.sourceCompatibility = 1.9
it.targetCompatibility = 1.9
it.destinationDir = file("${java9SourceSet.outputDir}/META-INF/versions/9")
it.options.fork = true
it.options.forkOptions.javaHome = file(JDK_9)
it.options.sourcepath = files(java9SourceSet.srcDirs)
doFirst {
def moduleFiles = moduleOutputs.collect { it.files }.flatten().join(File.pathSeparator)
options.compilerArgs = [
'--module-path', project.configurations.compileClasspath.asPath,
'--patch-module', "$moduleName=$moduleFiles"
]
classpath = files()
}
}
}
ext.manifestAttributes = { Manifest manifest, Project project, String component = null, boolean multiRelease = false ->
project.configure(manifest) {
attributes \
@@ -202,33 +226,3 @@ ext.createPreprocessorTask = { Project project, def name, def sourceDir, def tar
args = [sourceDir, targetDir, profile]
}
}
ext.createCompileJava9Task = { Project project, String name, String moduleName, List<? extends FileCollection> extraModuleContent = [] ->
project.tasks.findByName("compileJava9Java").enabled = false
def task = project.tasks.create(name, Exec)
def sourceSet = project.sourceSets.java9.java
task.inputs.dir(sourceSet.srcDirs.first())
task.outputs.dir(sourceSet.outputDir)
task.dependsOn(project.tasks.findByName("compileKotlin"), project.tasks.findByName("compileJava"))
def moduleContent = project.sourceSets.main.output.join(File.pathSeparator)
for (collection in extraModuleContent) {
moduleContent += File.pathSeparator + collection.asPath
}
def output = new File(sourceSet.outputDir, "META-INF/versions/9")
task.doFirst {
output.delete()
output.mkdirs()
}
task.commandLine = ["${JDK_9}/bin/javac",
*fileTree(sourceSet.srcDirs.first()).files.toArray(),
"-d", output.path,
"-p", project.configurations.compile.asPath,
"--patch-module", "$moduleName=$moduleContent"]
}
+3 -3
View File
@@ -21,11 +21,9 @@ dependencies {
archivesBaseName = 'kotlin-test'
createCompileJava9Task(project, "compileJava9", "kotlin.test")
jar {
manifestAttributes(manifest, project, 'Test', true)
from compileJava9.outputs
from sourceSets.java9.output
}
artifacts {
@@ -45,3 +43,5 @@ compileKotlin {
compileTestKotlin {
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"]
}
compileJava9Sources(project, 'kotlin.test')
+1 -2
View File
@@ -22,7 +22,7 @@ dependencies {
compileOnly project(':core:util.runtime')
}
createCompileJava9Task(project, "compileJava9", "kotlin.reflect", [configurations.compileOnly])
compileJava9Sources(project, 'kotlin.reflect', [sourceSets.main.output, configurations.compileOnly])
compileKotlin {
kotlinOptions {
@@ -39,7 +39,6 @@ jar {
}
task java9Jar(type: Jar) {
dependsOn(compileJava9)
classifier = "java9"
from sourceSets.java9.output
}
+4 -4
View File
@@ -61,8 +61,6 @@ configurations {
builtins
}
createCompileJava9Task(project, "compileJava9", "kotlin.stdlib", [sourceSets.builtins.output/* TODO: sourceSets.annotations.output?*/])
task originalStdlibJar(type: Jar) {
baseName = 'original-kotlin-stdlib'
from sourceSets.main.output
@@ -73,7 +71,7 @@ jar {
from("${rootDir}/dist/builtins")
from sourceSets.builtins.output
from sourceSets.experimental.output
from compileJava9.outputs
from sourceSets.java9.output
}
task distJar(type: Jar) {
@@ -85,7 +83,7 @@ task distJar(type: Jar) {
from sourceSets.builtins.output
from sourceSets.main.output
from sourceSets.experimental.output
from compileJava9.outputs
from sourceSets.java9.output
}
task builtinsJar(type: Jar) {
@@ -168,4 +166,6 @@ compileExperimentalKotlin {
}
}
compileJava9Sources(project, 'kotlin.stdlib', [sourceSets.builtins.output, sourceSets.main.output])
kotlin.experimental.coroutines 'enable'
+4 -4
View File
@@ -28,16 +28,14 @@ sourceSets {
}
java9 {
java {
srcDirs = ['java9']
srcDir 'java9'
}
}
}
createCompileJava9Task(project, "compileJava9", "kotlin.stdlib.jdk7")
jar {
manifestAttributes(manifest, project, 'Main', true)
from compileJava9.outputs
from sourceSets.java9.output
}
artifacts {
@@ -68,6 +66,8 @@ compileTestKotlin {
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"]
}
compileJava9Sources(project, 'kotlin.stdlib.jdk7')
kotlin.experimental.coroutines 'enable'
test {
+4 -4
View File
@@ -31,16 +31,14 @@ sourceSets {
}
java9 {
java {
srcDirs = ['java9']
srcDir 'java9'
}
}
}
createCompileJava9Task(project, "compileJava9", "kotlin.stdlib.jdk8")
jar {
manifestAttributes(manifest, project, 'Main', true)
from compileJava9.outputs
from sourceSets.java9.output
}
artifacts {
@@ -71,6 +69,8 @@ compileTestKotlin {
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"]
}
compileJava9Sources(project, 'kotlin.stdlib.jdk8')
kotlin.experimental.coroutines 'enable'
test {