gradle-plugin: Make the 'target' property of tasks internal
* Rename target -> konanTarget * Make konanTarget internal * Add public property 'target: String' * Add methods for task access by its target
This commit is contained in:
+13
-7
@@ -20,7 +20,7 @@ abstract class KonanBuildingConfig<T: KonanBuildingTask>(private val name_: Stri
|
||||
type: Class<T>,
|
||||
val project: ProjectInternal,
|
||||
instantiator: Instantiator)
|
||||
: KonanBuildingSpec, Named, DefaultNamedDomainObjectSet<T>(type, instantiator, { it.target.userName }) {
|
||||
: KonanBuildingSpec, Named, DefaultNamedDomainObjectSet<T>(type, instantiator, { it.konanTarget.userName }) {
|
||||
|
||||
override fun getName() = name_
|
||||
|
||||
@@ -60,8 +60,8 @@ abstract class KonanBuildingConfig<T: KonanBuildingTask>(private val name_: Stri
|
||||
override fun didAdd(toAdd: T) {
|
||||
super.didAdd(toAdd)
|
||||
|
||||
assert(toAdd.target !in targetToTask)
|
||||
targetToTask[toAdd.target] = toAdd
|
||||
assert(toAdd.konanTarget !in targetToTask)
|
||||
targetToTask[toAdd.konanTarget] = toAdd
|
||||
}
|
||||
|
||||
protected fun createTask(target: KonanTarget): T =
|
||||
@@ -76,7 +76,7 @@ abstract class KonanBuildingConfig<T: KonanBuildingTask>(private val name_: Stri
|
||||
task.group = BasePlugin.BUILD_GROUP
|
||||
task.description = generateAggregateTaskDescription(task)
|
||||
this.filter {
|
||||
project.targetIsRequested(it.target)
|
||||
project.targetIsRequested(it.konanTarget)
|
||||
}.forEach {
|
||||
task.dependsOn(it)
|
||||
}
|
||||
@@ -87,18 +87,24 @@ abstract class KonanBuildingConfig<T: KonanBuildingTask>(private val name_: Stri
|
||||
this[TargetManager.host]?.let { hostBuild ->
|
||||
project.tasks.create(generateHostTaskName()) {
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.description = generateHostTaskDescription(it, hostBuild.target)
|
||||
it.description = generateHostTaskDescription(it, hostBuild.konanTarget)
|
||||
it.dependsOn(hostBuild)
|
||||
}
|
||||
}
|
||||
|
||||
operator fun get(target: KonanTarget) = targetToTask[target]
|
||||
internal operator fun get(target: KonanTarget) = targetToTask[target]
|
||||
|
||||
fun getByTarget(target: String) = findByTarget(target) ?: throw NoSuchElementException("No such target for artifact $name: ${target}")
|
||||
fun findByTarget(target: String) = this[TargetManager(target).target]
|
||||
|
||||
fun getArtifactByTarget(target: String) = getByTarget(target).artifact
|
||||
fun findArtifactByTarget(target: String) = findByTarget(target)?.artifact
|
||||
|
||||
// Common building DSL.
|
||||
|
||||
override fun artifactName(name: String) = forEach { it.artifactName(name) }
|
||||
|
||||
fun baseDir(dir: Any) = forEach { it.destinationDir(project.file(dir).targetSubdir(it.target)) }
|
||||
fun baseDir(dir: Any) = forEach { it.destinationDir(project.file(dir).targetSubdir(it.konanTarget)) }
|
||||
|
||||
override fun libraries(closure: Closure<Unit>) = forEach { it.libraries(closure) }
|
||||
override fun libraries(action: Action<KonanLibrariesSpec>) = forEach { it.libraries(action) }
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ abstract class KonanCompileConfig<T: KonanCompileTask>(name: String,
|
||||
protected abstract val typeForDescription: String
|
||||
|
||||
override fun generateTaskDescription(task: T) =
|
||||
"Build the Kotlin/Native $typeForDescription '${task.name}' for target '${task.target}'"
|
||||
"Build the Kotlin/Native $typeForDescription '${task.name}' for target '${task.konanTarget}'"
|
||||
|
||||
override fun generateAggregateTaskDescription(task: Task) =
|
||||
"Build the Kotlin/Native $typeForDescription '${task.name}' for all supported and declared targets"
|
||||
@@ -74,7 +74,7 @@ open class KonanBitcode(name: String, project: ProjectInternal, instantiator: In
|
||||
get() = "bitcode"
|
||||
|
||||
override fun generateTaskDescription(task: KonanCompileBitcodeTask) =
|
||||
"Generates bitcode for the artifact '${task.name}' and target '${task.target}'"
|
||||
"Generates bitcode for the artifact '${task.name}' and target '${task.konanTarget}'"
|
||||
|
||||
override fun generateAggregateTaskDescription(task: Task) =
|
||||
"Generates bitcode for the artifact '${task.name}' for all supported and declared targets'"
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ open class KonanInteropLibrary(name: String, project: ProjectInternal, instantia
|
||||
: KonanBuildingConfig<KonanInteropTask>(name, KonanInteropTask::class.java, project, instantiator), KonanInteropSpec {
|
||||
|
||||
override fun generateTaskDescription(task: KonanInteropTask) =
|
||||
"Build the Kotlin/Native interop library '${task.name}' for target '${task.target}'"
|
||||
"Build the Kotlin/Native interop library '${task.name}' for target '${task.konanTarget}'"
|
||||
|
||||
override fun generateAggregateTaskDescription(task: Task) =
|
||||
"Build the Kotlin/Native interop library '${task.name}' for all supported and declared targets'"
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ open class KonanLibrariesSpec(val task: KonanArtifactWithLibrariesTask, val proj
|
||||
}
|
||||
|
||||
val target: KonanTarget
|
||||
@Internal get() = task.target
|
||||
@Internal get() = task.konanTarget
|
||||
|
||||
// DSL Methods
|
||||
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ object KonanToolingModelBuilder : ToolingModelBuilder {
|
||||
override fun buildAll(modelName: String, project: Project): KonanModel {
|
||||
val artifacts = project.konanArtifactsContainer.flatten()
|
||||
.toList()
|
||||
.map { KonanArtifactImpl("${it.artifact.name}-${it.target.userName}", it.artifact.canonicalPath) }
|
||||
.map { KonanArtifactImpl("${it.artifact.name}-${it.konanTarget.userName}", it.artifact.canonicalPath) }
|
||||
return KonanModelImpl(project.konanVersion, artifacts)
|
||||
}
|
||||
}
|
||||
|
||||
+7
-5
@@ -41,18 +41,20 @@ internal val Project.simpleOsName
|
||||
/** A task with a KonanTarget specified. */
|
||||
abstract class KonanTargetableTask: DefaultTask() {
|
||||
|
||||
@Input lateinit var target: KonanTarget
|
||||
internal set
|
||||
@Input internal lateinit var konanTarget: KonanTarget
|
||||
|
||||
internal open fun init(target: KonanTarget) {
|
||||
this.target = target
|
||||
this.konanTarget = target
|
||||
}
|
||||
|
||||
val targetIsSupported: Boolean
|
||||
@Internal get() = target.enabled
|
||||
@Internal get() = konanTarget.enabled
|
||||
|
||||
val isCrossCompile: Boolean
|
||||
@Internal get() = (target != TargetManager.host)
|
||||
@Internal get() = (konanTarget != TargetManager.host)
|
||||
|
||||
val target: String
|
||||
@Internal get() = konanTarget.userName
|
||||
}
|
||||
|
||||
/** A task building an artifact. */
|
||||
|
||||
+2
-2
@@ -41,7 +41,7 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec {
|
||||
// Output artifact --------------------------------------------------------
|
||||
|
||||
override val artifactSuffix: String
|
||||
@Internal get() = produce.kind.suffix(target)
|
||||
@Internal get() = produce.kind.suffix(konanTarget)
|
||||
|
||||
// Other compilation parameters -------------------------------------------
|
||||
|
||||
@@ -84,7 +84,7 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec {
|
||||
|
||||
addListArg("-linkerOpts", linkerOpts)
|
||||
|
||||
addArgIfNotNull("-target", target.userName)
|
||||
addArgIfNotNull("-target", konanTarget.userName)
|
||||
addArgIfNotNull("-language-version", languageVersion)
|
||||
addArgIfNotNull("-api-version", apiVersion)
|
||||
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ open class KonanInteropTask: KonanBuildingTask(), KonanInteropSpec {
|
||||
|
||||
addArg("-o", artifact.canonicalPath)
|
||||
|
||||
addArgIfNotNull("-target", target.userName)
|
||||
addArgIfNotNull("-target", konanTarget.userName)
|
||||
addArgIfNotNull("-def", defFile.canonicalPath)
|
||||
addArgIfNotNull("-pkg", packageName)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user