inject current Configuration into settings

This commit is contained in:
Mark Harrah 2011-01-31 18:15:15 -05:00
parent 266df4c1ad
commit d9d4869e49
2 changed files with 6 additions and 4 deletions

View File

@ -11,7 +11,7 @@ package sbt
import scala.annotation.tailrec
import collection.mutable
import Compile.{Compilers,Inputs}
import Project.{AppConfig, ScopedKey, Setting, ThisProject, ThisProjectRef}
import Project.{AppConfig, Config, ScopedKey, Setting, ThisProject, ThisProjectRef}
import TypeFunctions.{Endo,Id}
import tools.nsc.reporters.ConsoleReporter
@ -258,10 +258,12 @@ object Load
val (pluginThisProject, pluginGlobal) = pluginSettings partition isProjectThis
val projectSettings = build.defined flatMap { case (id, project) =>
val srcs = configurationSources(project.base)
val ref = ProjectRef(Some(uri), Some(id))
val defineConfig = for(c <- project.configurations) yield (Config(ref, ConfigKey(c.name)) :== c)
val settings =
(ThisProject :== project) +:
(ThisProjectRef :== ProjectRef(Some(uri), Some(id))) +:
(project.settings ++ pluginThisProject ++ configurations(srcs, eval, build.imports))
(ThisProjectRef :== ref) +:
(defineConfig ++ project.settings ++ pluginThisProject ++ configurations(srcs, eval, build.imports))
// map This to thisScope, Select(p) to mapRef(uri, rootProject, p)
transformSettings(projectScope(uri, id), uri, rootProject, settings)

View File

@ -91,7 +91,7 @@ object Project extends Init[Scope]
val AppConfig = SettingKey[xsbti.AppConfiguration]("app-configuration")
val ThisProject = SettingKey[Project]("project")
val ThisProjectRef = SettingKey[ProjectRef]("project-ref")
val Config = SettingKey[Configuration]("configuration")
}
import SessionSettings._