Easier adding library project as dependency
This commit is contained in:
@@ -233,6 +233,12 @@ For this project the task graph will be the following:
|
|||||||
|
|
||||||
// *.klib library for linking.
|
// *.klib library for linking.
|
||||||
library project.file('path/to/library')
|
library project.file('path/to/library')
|
||||||
|
|
||||||
|
// library project
|
||||||
|
library project(':lib')
|
||||||
|
|
||||||
|
// artifect in a library project
|
||||||
|
library(project(':lib'), 'artifectName')
|
||||||
|
|
||||||
// naitve library for linking.
|
// naitve library for linking.
|
||||||
nativeLibrary project.file('path/to/native/library/')
|
nativeLibrary project.file('path/to/native/library/')
|
||||||
|
|||||||
+21
@@ -204,6 +204,27 @@ open class KonanCompileConfig(
|
|||||||
|
|
||||||
// DSL. Libraries.
|
// 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 library(lib: Any) = libraries(lib)
|
||||||
fun libraries(vararg libs: Any) = with(compilationTask) {
|
fun libraries(vararg libs: Any) = with(compilationTask) {
|
||||||
libraries.add(project.files(*libs))
|
libraries.add(project.files(*libs))
|
||||||
|
|||||||
Reference in New Issue
Block a user