Review fixes: prohibit setting classpath, use lazy provider for destination dir

This commit is contained in:
Leonid Startsev
2018-08-13 13:16:57 +03:00
committed by Ilya Matveev
parent 8dc5af35c5
commit 4368ad2b1c
2 changed files with 11 additions and 2 deletions
@@ -34,6 +34,7 @@ import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.experimental.*
import org.jetbrains.kotlin.gradle.plugin.experimental.CInteropSettings
import org.jetbrains.kotlin.gradle.plugin.experimental.internal.*
import org.jetbrains.kotlin.gradle.plugin.experimental.tasks.CInteropTask
import org.jetbrains.kotlin.gradle.plugin.experimental.tasks.KotlinNativeCompile
@@ -56,6 +56,12 @@ open class KotlinNativeCompile @Inject constructor(internal val binary: Abstract
val libraries: Configuration
@InputFiles get() = binary.klibraries
override fun getClasspath(): FileCollection = libraries
override fun setClasspath(configuration: FileCollection?) {
throw UnsupportedOperationException("Use klibraries to set compile classpath in Kotlin/Native")
}
val optimized: Boolean @Input get() = binary.optimized
val debuggable: Boolean @Input get() = binary.debuggable
@@ -114,8 +120,10 @@ open class KotlinNativeCompile @Inject constructor(internal val binary: Abstract
// initializing AbstractCompile properties
init {
classpath = libraries
destinationDir = if (outputFile.isDirectory) outputFile else outputFile.parentFile
@Suppress("LeakingThis")
setDestinationDir(project.provider {
if (outputFile.isDirectory) outputFile else outputFile.parentFile
})
sourceCompatibility = "1.6"
targetCompatibility = "1.6"
}