Provide a basic DSL for liking task accessing
This commit is contained in:
committed by
Ilya Matveev
parent
f5eecdd547
commit
cbb1b9fae5
+2
@@ -519,6 +519,8 @@ open class KotlinNativeTargetConfigurator(
|
|||||||
linkAll.dependsOn(this)
|
linkAll.dependsOn(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compilation.binaryTasks[kind to buildType] = linkTask
|
||||||
|
|
||||||
if (compilation.isTestCompilation &&
|
if (compilation.isTestCompilation &&
|
||||||
buildType == NativeBuildType.DEBUG &&
|
buildType == NativeBuildType.DEBUG &&
|
||||||
konanTarget in hostTargets
|
konanTarget in hostTargets
|
||||||
|
|||||||
+27
-1
@@ -18,8 +18,11 @@ import org.jetbrains.kotlin.gradle.plugin.*
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.sources.defaultSourceSetLanguageSettingsChecker
|
import org.jetbrains.kotlin.gradle.plugin.sources.defaultSourceSetLanguageSettingsChecker
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.getSourceSetHierarchy
|
import org.jetbrains.kotlin.gradle.plugin.sources.getSourceSetHierarchy
|
||||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
|
||||||
import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
|
import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
|
import java.io.File
|
||||||
|
import java.lang.IllegalArgumentException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
internal fun KotlinCompilation.composeName(prefix: String? = null, suffix: String? = null): String {
|
internal fun KotlinCompilation.composeName(prefix: String? = null, suffix: String? = null): String {
|
||||||
@@ -288,6 +291,8 @@ class KotlinNativeCompilation(
|
|||||||
target.compilations.getByName(it)
|
target.compilations.getByName(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal val binaryTasks = mutableMapOf<Pair<NativeOutputKind, NativeBuildType>, KotlinNativeCompile>()
|
||||||
|
|
||||||
// Native-specific DSL.
|
// Native-specific DSL.
|
||||||
val extraOpts = mutableListOf<String>()
|
val extraOpts = mutableListOf<String>()
|
||||||
|
|
||||||
@@ -322,8 +327,29 @@ class KotlinNativeCompilation(
|
|||||||
var entryPoint: String? = null
|
var entryPoint: String? = null
|
||||||
fun entryPoint(value: String) { entryPoint = value }
|
fun entryPoint(value: String) { entryPoint = value }
|
||||||
|
|
||||||
// Naming
|
fun findLinkTask(kind: NativeOutputKind, buildType: NativeBuildType): KotlinNativeCompile? = binaryTasks[kind to buildType]
|
||||||
|
|
||||||
|
fun getLinkTask(kind: NativeOutputKind, buildType: NativeBuildType): KotlinNativeCompile =
|
||||||
|
findLinkTask(kind, buildType) ?:
|
||||||
|
throw IllegalArgumentException("Cannot find a link task for the binary kind '$kind' and the build type '$buildType'")
|
||||||
|
|
||||||
|
fun findLinkTask(kind: String, buildType: String) =
|
||||||
|
findLinkTask(NativeOutputKind.valueOf(kind.toUpperCase()), NativeBuildType.valueOf(buildType.toUpperCase()))
|
||||||
|
|
||||||
|
fun getLinkTask(kind: String, buildType: String) =
|
||||||
|
getLinkTask(NativeOutputKind.valueOf(kind.toUpperCase()), NativeBuildType.valueOf(buildType.toUpperCase()))
|
||||||
|
|
||||||
|
fun findBinary(kind: NativeOutputKind, buildType: NativeBuildType): File? = findLinkTask(kind, buildType)?.outputFile?.get()
|
||||||
|
|
||||||
|
fun getBinary(kind: NativeOutputKind, buildType: NativeBuildType): File = getLinkTask(kind, buildType).outputFile.get()
|
||||||
|
|
||||||
|
fun findBinary(kind: String, buildType: String) =
|
||||||
|
findBinary(NativeOutputKind.valueOf(kind.toUpperCase()), NativeBuildType.valueOf(buildType.toUpperCase()))
|
||||||
|
|
||||||
|
fun getBinary(kind: String, buildType: String) =
|
||||||
|
getBinary(NativeOutputKind.valueOf(kind.toUpperCase()), NativeBuildType.valueOf(buildType.toUpperCase()))
|
||||||
|
|
||||||
|
// Naming
|
||||||
override val compileDependencyConfigurationName: String
|
override val compileDependencyConfigurationName: String
|
||||||
get() = lowerCamelCaseName(
|
get() = lowerCamelCaseName(
|
||||||
target.disambiguationClassifier,
|
target.disambiguationClassifier,
|
||||||
|
|||||||
Reference in New Issue
Block a user