gradle-plugin: Don't use a default src path if another one is defined
This commit is contained in:
+21
-12
@@ -93,24 +93,14 @@ class KonanArtifactsContainer(val project: ProjectInternal): AbstractNamedDomain
|
|||||||
KonanCompileConfig::class.java,
|
KonanCompileConfig::class.java,
|
||||||
project.gradle.services.get(Instantiator::class.java)) {
|
project.gradle.services.get(Instantiator::class.java)) {
|
||||||
|
|
||||||
override fun doCreate(name: String): KonanCompileConfig =
|
override fun doCreate(name: String): KonanCompileConfig = KonanCompileConfig(name, project)
|
||||||
KonanCompileConfig(name, project).apply {
|
|
||||||
project.konanDefaultSrcDir?.takeIf { it.exists() }?.let {
|
|
||||||
inputDir(it.canonicalPath)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class KonanInteropContainer(val project: ProjectInternal): AbstractNamedDomainObjectContainer<KonanInteropConfig>(
|
class KonanInteropContainer(val project: ProjectInternal): AbstractNamedDomainObjectContainer<KonanInteropConfig>(
|
||||||
KonanInteropConfig::class.java,
|
KonanInteropConfig::class.java,
|
||||||
project.gradle.services.get(Instantiator::class.java)) {
|
project.gradle.services.get(Instantiator::class.java)) {
|
||||||
|
|
||||||
override fun doCreate(name: String): KonanInteropConfig =
|
override fun doCreate(name: String): KonanInteropConfig = KonanInteropConfig(name, project)
|
||||||
KonanInteropConfig(name, project).apply {
|
|
||||||
project.konanDefaultDefFile(name).takeIf { it.exists() }?.let {
|
|
||||||
defFile(it.canonicalFile)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Useful extensions and functions ---------------------------------------
|
// Useful extensions and functions ---------------------------------------
|
||||||
@@ -192,6 +182,24 @@ internal fun dumpProperties(task: Task) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setDefaultInputs(project: Project) {
|
||||||
|
project.tasks.withType(KonanCompileTask::class.java).forEach { task ->
|
||||||
|
if (task.inputFiles.isEmpty()) {
|
||||||
|
project.konanDefaultSrcDir?.takeIf { it.exists() }?.let { srcDir ->
|
||||||
|
task.inputFiles.add(project.fileTree(srcDir))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
project.tasks.withType(KonanInteropTask::class.java).forEach { task ->
|
||||||
|
if (task.defFile == null) {
|
||||||
|
project.konanDefaultDefFile(task.libName).takeIf { it.exists() }?.let {
|
||||||
|
task.defFile = it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderRegistry)
|
class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderRegistry)
|
||||||
: Plugin<ProjectInternal> {
|
: Plugin<ProjectInternal> {
|
||||||
|
|
||||||
@@ -249,6 +257,7 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
|
|||||||
project.getTask("build").apply {
|
project.getTask("build").apply {
|
||||||
dependsOn(compileKonanTask)
|
dependsOn(compileKonanTask)
|
||||||
}
|
}
|
||||||
|
project.afterEvaluate(::setDefaultInputs)
|
||||||
|
|
||||||
project.getOrCreateTask("run").apply {
|
project.getOrCreateTask("run").apply {
|
||||||
dependsOn(project.getTask("build"))
|
dependsOn(project.getTask("build"))
|
||||||
|
|||||||
Reference in New Issue
Block a user