mirror of https://github.com/sbt/sbt.git
Resolve some TODOs by creating a private copy2 in Project
This commit is contained in:
parent
dd9b2b2f3a
commit
9e855ffb55
|
|
@ -111,7 +111,6 @@ sealed trait ProjectDefinition[PR <: ProjectReference] {
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed trait Project extends ProjectDefinition[ProjectReference] {
|
sealed trait Project extends ProjectDefinition[ProjectReference] {
|
||||||
// TODO: add parameters for plugins in 0.14.0 (not reasonable to do in a binary compatible way in 0.13)
|
|
||||||
private[sbt] def copy(
|
private[sbt] def copy(
|
||||||
id: String = id,
|
id: String = id,
|
||||||
base: File = base,
|
base: File = base,
|
||||||
|
|
@ -119,6 +118,19 @@ sealed trait Project extends ProjectDefinition[ProjectReference] {
|
||||||
dependencies: Seq[ClasspathDep[ProjectReference]] = dependencies,
|
dependencies: Seq[ClasspathDep[ProjectReference]] = dependencies,
|
||||||
settings: Seq[Setting[_]] = settings,
|
settings: Seq[Setting[_]] = settings,
|
||||||
configurations: Seq[Configuration] = configurations
|
configurations: Seq[Configuration] = configurations
|
||||||
|
): Project =
|
||||||
|
copy2(id, base, aggregate, dependencies, settings, configurations)
|
||||||
|
|
||||||
|
private[this] def copy2(
|
||||||
|
id: String = id,
|
||||||
|
base: File = base,
|
||||||
|
aggregate: Seq[ProjectReference] = aggregate,
|
||||||
|
dependencies: Seq[ClasspathDep[ProjectReference]] = dependencies,
|
||||||
|
settings: Seq[Setting[_]] = settings,
|
||||||
|
configurations: Seq[Configuration] = configurations,
|
||||||
|
plugins: Plugins = plugins,
|
||||||
|
autoPlugins: Seq[AutoPlugin] = autoPlugins,
|
||||||
|
projectOrigin: ProjectOrigin = projectOrigin,
|
||||||
): Project =
|
): Project =
|
||||||
unresolved(
|
unresolved(
|
||||||
id,
|
id,
|
||||||
|
|
@ -217,52 +229,13 @@ sealed trait Project extends ProjectDefinition[ProjectReference] {
|
||||||
def disablePlugins(ps: AutoPlugin*): Project =
|
def disablePlugins(ps: AutoPlugin*): Project =
|
||||||
setPlugins(Plugins.and(plugins, Plugins.And(ps.map(p => Plugins.Exclude(p)).toList)))
|
setPlugins(Plugins.and(plugins, Plugins.And(ps.map(p => Plugins.Exclude(p)).toList)))
|
||||||
|
|
||||||
private[this] def setPlugins(ns: Plugins): Project = {
|
private[this] def setPlugins(ns: Plugins): Project = copy2(plugins = ns)
|
||||||
// TODO: for 0.14.0, use copy when it has the additional `plugins` parameter
|
|
||||||
unresolved(
|
|
||||||
id,
|
|
||||||
base,
|
|
||||||
aggregate = aggregate,
|
|
||||||
dependencies = dependencies,
|
|
||||||
settings,
|
|
||||||
configurations,
|
|
||||||
ns,
|
|
||||||
autoPlugins,
|
|
||||||
projectOrigin
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Definitively set the [[AutoPlugin]]s for this project. */
|
/** Definitively set the [[AutoPlugin]]s for this project. */
|
||||||
private[sbt] def setAutoPlugins(autos: Seq[AutoPlugin]): Project = {
|
private[sbt] def setAutoPlugins(autos: Seq[AutoPlugin]): Project = copy2(autoPlugins = autos)
|
||||||
// TODO: for 0.14.0, use copy when it has the additional `autoPlugins` parameter
|
|
||||||
unresolved(
|
|
||||||
id,
|
|
||||||
base,
|
|
||||||
aggregate = aggregate,
|
|
||||||
dependencies = dependencies,
|
|
||||||
settings,
|
|
||||||
configurations,
|
|
||||||
plugins,
|
|
||||||
autos,
|
|
||||||
projectOrigin
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Definitively set the [[ProjectOrigin]] for this project. */
|
/** Definitively set the [[ProjectOrigin]] for this project. */
|
||||||
private[sbt] def setProjectOrigin(origin: ProjectOrigin): Project = {
|
private[sbt] def setProjectOrigin(origin: ProjectOrigin): Project = copy2(projectOrigin = origin)
|
||||||
// TODO: for 1.0.x, use withProjectOrigin.
|
|
||||||
unresolved(
|
|
||||||
id,
|
|
||||||
base,
|
|
||||||
aggregate = aggregate,
|
|
||||||
dependencies = dependencies,
|
|
||||||
settings,
|
|
||||||
configurations,
|
|
||||||
plugins,
|
|
||||||
autoPlugins,
|
|
||||||
origin
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed trait ResolvedProject extends ProjectDefinition[ProjectRef] {
|
sealed trait ResolvedProject extends ProjectDefinition[ProjectRef] {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue