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 scala.annotation.tailrec
import collection.mutable import collection.mutable
import Compile.{Compilers,Inputs} import Compile.{Compilers,Inputs}
import Project.{AppConfig, ScopedKey, Setting, ThisProject, ThisProjectRef} import Project.{AppConfig, Config, ScopedKey, Setting, ThisProject, ThisProjectRef}
import TypeFunctions.{Endo,Id} import TypeFunctions.{Endo,Id}
import tools.nsc.reporters.ConsoleReporter import tools.nsc.reporters.ConsoleReporter
@ -258,10 +258,12 @@ object Load
val (pluginThisProject, pluginGlobal) = pluginSettings partition isProjectThis val (pluginThisProject, pluginGlobal) = pluginSettings partition isProjectThis
val projectSettings = build.defined flatMap { case (id, project) => val projectSettings = build.defined flatMap { case (id, project) =>
val srcs = configurationSources(project.base) 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 = val settings =
(ThisProject :== project) +: (ThisProject :== project) +:
(ThisProjectRef :== ProjectRef(Some(uri), Some(id))) +: (ThisProjectRef :== ref) +:
(project.settings ++ pluginThisProject ++ configurations(srcs, eval, build.imports)) (defineConfig ++ project.settings ++ pluginThisProject ++ configurations(srcs, eval, build.imports))
// map This to thisScope, Select(p) to mapRef(uri, rootProject, p) // map This to thisScope, Select(p) to mapRef(uri, rootProject, p)
transformSettings(projectScope(uri, id), uri, rootProject, settings) 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 AppConfig = SettingKey[xsbti.AppConfiguration]("app-configuration")
val ThisProject = SettingKey[Project]("project") val ThisProject = SettingKey[Project]("project")
val ThisProjectRef = SettingKey[ProjectRef]("project-ref") val ThisProjectRef = SettingKey[ProjectRef]("project-ref")
val Config = SettingKey[Configuration]("configuration")
} }
import SessionSettings._ import SessionSettings._