add new ProjectReference called LocalRootProject for referencing the root project in the current build

This commit is contained in:
Mark Harrah 2011-06-23 20:37:56 -04:00
parent e5fbfdd3c1
commit 18a3e7995e
3 changed files with 7 additions and 4 deletions

View File

@ -176,14 +176,15 @@ object Project extends Init[Scope] with ProjectExtra
def display(ref: BuildReference) =
ref match
{
case ThisBuild => "<this>"
case ThisBuild => "{<this>}"
case BuildRef(uri) => "{" + uri + "}"
}
def display(ref: ProjectReference) =
ref match
{
case ThisProject => "(<this>)<this>"
case LocalProject(id) => "(<this>)" + id
case ThisProject => "{<this>}<this>"
case LocalRootProject => "{<this>}<root>"
case LocalProject(id) => "{<this>}" + id
case RootProject(uri) => "{" + uri + " }<root>"
case ProjectRef(uri, id) => "{" + uri + "}" + id
}

View File

@ -19,6 +19,7 @@ sealed trait ProjectReference extends Reference
final case class ProjectRef(build: URI, project: String) extends ProjectReference with ResolvedReference
final case class LocalProject(project: String) extends ProjectReference
final case class RootProject(build: URI) extends ProjectReference
final case object LocalRootProject extends ProjectReference
final case object ThisProject extends ProjectReference
object ProjectRef

View File

@ -58,6 +58,7 @@ object Scope
ref match
{
case ThisProject => RootProject(current)
case LocalRootProject => RootProject(current)
case LocalProject(id) => ProjectRef(current, id)
case RootProject(uri) => RootProject(resolveBuild(current, uri))
case ProjectRef(uri, id) => ProjectRef(resolveBuild(current, uri), id)
@ -75,7 +76,7 @@ object Scope
def resolveProjectRef(current: URI, rootProject: URI => String, ref: ProjectReference): ProjectRef =
ref match
{
case ThisProject => ProjectRef(current, rootProject(current))
case ThisProject | LocalRootProject => ProjectRef(current, rootProject(current))
case LocalProject(id) => ProjectRef(current, id)
case RootProject(uri) => val res = resolveBuild(current, uri); ProjectRef(res, rootProject(res))
case ProjectRef(uri, id) => ProjectRef(resolveBuild(current, uri), id)