gradle-plugin: Use a separate directory for compiled stubs

Two tasks (stub-generator and stub-compiler) used the same output
directory. It caused some problems with up-to-date checks: the
stub-generator task might rerun even if it's inputs isn't changed.
The patch uses separate directories for this tasks to fix this issue.
This commit is contained in:
Ilya Matveev
2017-05-12 11:42:41 +07:00
committed by ilmat192
parent 43582acbf1
commit 50ba283aaa
3 changed files with 8 additions and 7 deletions
@@ -99,8 +99,8 @@ open class KonanCompilerConfig(
}
fun useInterop(interopConfig: KonanInteropConfig) {
var generateStubsTask = interopConfig.generateStubsTask
var compileStubsTask = interopConfig.compileStubsTask
val generateStubsTask = interopConfig.generateStubsTask
val compileStubsTask = interopConfig.compileStubsTask
compilationTask.dependsOn(compileStubsTask)
compilationTask.dependsOn(generateStubsTask)
@@ -59,7 +59,7 @@ open class KonanInteropConfig(
// Config and task to compile *.kt stubs in a *.bc library
internal val compileStubsConfig = KonanCompilerConfig("${name}InteropStubs", project, "compile").apply {
compilationTask.dependsOn(generateStubsTask)
outputDir(generateStubsTask.stubsDir.absolutePath)
outputDir("${project.konanInteropCompiledStubsDir}/$name")
noLink()
inputFiles(project.fileTree(generateStubsTask.stubsDir).apply { builtBy(generateStubsTask) })
}
@@ -38,10 +38,11 @@ internal val Project.konanHome: String
return extensions.extraProperties.get(KonanPlugin.KONAN_HOME_PROPERTY_NAME).toString()
}
internal val Project.konanBuildRoot get() = "${buildDir.canonicalPath}/konan"
internal val Project.konanCompilerOutputDir get() = "${konanBuildRoot}/bin"
internal val Project.konanInteropStubsOutputDir get() = "${konanBuildRoot}/interopStubs"
internal val Project.konanInteropLibsOutputDir get() = "${konanBuildRoot}/nativelibs"
internal val Project.konanBuildRoot get() = "${buildDir.canonicalPath}/konan"
internal val Project.konanCompilerOutputDir get() = "${konanBuildRoot}/bin"
internal val Project.konanInteropStubsOutputDir get() = "${konanBuildRoot}/interopStubs"
internal val Project.konanInteropCompiledStubsDir get() = "${konanBuildRoot}/interopCompiledStubs"
internal val Project.konanInteropLibsOutputDir get() = "${konanBuildRoot}/nativelibs"
internal val Project.konanArtifactsContainer: KonanArtifactsContainer
get() = extensions.getByName(KonanPlugin.COMPILER_EXTENSION_NAME) as KonanArtifactsContainer