gradle-plugin: Don't use a default src path if another one is defined

This commit is contained in:
Ilya Matveev
2017-07-17 19:32:39 +07:00
committed by ilmat192
parent 6534f36dbd
commit dc1d24eaa7
@@ -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"))