Easier adding library project as dependency

This commit is contained in:
Jiaming Lu
2017-09-21 12:10:11 +08:00
committed by ilmat192
parent e7bd89e263
commit 87d3c791f8
2 changed files with 27 additions and 0 deletions
+6
View File
@@ -233,6 +233,12 @@ For this project the task graph will be the following:
// *.klib library for linking.
library project.file('path/to/library')
// library project
library project(':lib')
// artifect in a library project
library(project(':lib'), 'artifectName')
// naitve library for linking.
nativeLibrary project.file('path/to/native/library/')
@@ -204,6 +204,27 @@ open class KonanCompileConfig(
// DSL. Libraries.
fun library(project: Project) {
this.project.evaluationDependsOn(project.path)
project.konanArtifactsContainer.asSequence()
.map { it.compilationTask }
.filter { it.produce == "library" }
.forEach {
compilationTask.dependsOn(it)
library(it.artifact)
}
}
fun library(project: Project, artifactName: String) {
this.project.evaluationDependsOn(project.path)
val libraryCompilationTask = project.konanArtifactsContainer.getByName(artifactName).compilationTask
if (libraryCompilationTask.produce != "library") {
throw IllegalArgumentException("Artifact is not a library: $artifactName (in project: ${project.path})")
}
compilationTask.dependsOn(libraryCompilationTask)
library(libraryCompilationTask.artifact)
}
fun library(lib: Any) = libraries(lib)
fun libraries(vararg libs: Any) = with(compilationTask) {
libraries.add(project.files(*libs))