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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user