diff --git a/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt b/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt index 21543539..07813e4e 100644 --- a/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt +++ b/src/main/kotlin/com/beust/kobalt/api/Kobalt.kt @@ -2,8 +2,6 @@ package com.beust.kobalt.api import com.beust.kobalt.Plugins import com.beust.kobalt.misc.Topological -import com.beust.kobalt.plugins -import com.google.common.collect.ArrayListMultimap import com.google.inject.Injector import java.io.File import java.io.InputStream @@ -85,16 +83,20 @@ public class Kobalt { val version = properties.getProperty(PROPERTY_KOBALT_VERSION) - val topological = Topological() + val topologicalProjects = Topological() + /** + * Used by projects to specify that they depend on other projects, e.g. + * val p = javaProject(project1, project2) { ... } + */ fun declareProjectDependencies(project: Project, projects: Array) { - topological.addEdge(project, projects) + topologicalProjects.addEdge(project, projects) } /** * @return the projects sorted topologically. */ - fun sortProjects(allProjects: ArrayList) = topological.sort(allProjects) + fun sortProjects(allProjects: ArrayList) = topologicalProjects.sort(allProjects) fun findPlugin(name: String) = Plugins.findPlugin(name) } diff --git a/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt index 800801e8..8e077975 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/java/JavaPlugin.kt @@ -107,10 +107,11 @@ public class JavaPlugin @Inject constructor( } @Directive -public fun javaProject(init: JavaProject.() -> Unit): JavaProject { - val pd = JavaProject() - pd.init() - return pd +public fun javaProject(vararg project: Project, init: JavaProject.() -> Unit): JavaProject { + return JavaProject().apply { + init() + Kobalt.declareProjectDependencies(this, project) + } } class JavaCompilerConfig {