1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -07:00

Enable project dependencies for javaProject() too.

This commit is contained in:
Cedric Beust 2015-10-31 16:03:59 -07:00
parent 0e30ce1edf
commit e3c36e9ad7
2 changed files with 12 additions and 9 deletions

View file

@ -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<Project>()
val topologicalProjects = Topological<Project>()
/**
* Used by projects to specify that they depend on other projects, e.g.
* val p = javaProject(project1, project2) { ... }
*/
fun declareProjectDependencies(project: Project, projects: Array<out Project>) {
topological.addEdge(project, projects)
topologicalProjects.addEdge(project, projects)
}
/**
* @return the projects sorted topologically.
*/
fun sortProjects(allProjects: ArrayList<Project>) = topological.sort(allProjects)
fun sortProjects(allProjects: ArrayList<Project>) = topologicalProjects.sort(allProjects)
fun findPlugin(name: String) = Plugins.findPlugin(name)
}

View file

@ -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 {