add isMetaBuild setting

Fixes #3436

This implements isMetaBuild setting that is explicitly for meta build only,
unlike sbtPlugin setting which can be used for both meta build and plugin development purpose.
This commit is contained in:
Eugene Yokota 2018-11-09 03:08:47 -05:00
parent edd0c34186
commit c91371b7f8
3 changed files with 4 additions and 0 deletions

View File

@ -172,6 +172,7 @@ object Defaults extends BuildCommon {
testForkedParallel :== false,
javaOptions :== Nil,
sbtPlugin :== false,
isMetaBuild :== false,
crossPaths :== true,
sourcePositionMappers :== Nil,
artifactClassifier in packageSrc :== Some(SourceClassifier),

View File

@ -234,6 +234,7 @@ object Keys {
val classpathOptions = settingKey[ClasspathOptions]("Configures handling of Scala classpaths.").withRank(DSetting)
val discoveredSbtPlugins = taskKey[PluginDiscovery.DiscoveredNames]("The names of sbt plugin-related modules (modules that extend Build, Plugin, AutoPlugin) defined by this project.").withRank(CTask)
val sbtPlugin = settingKey[Boolean]("If true, enables adding sbt as a dependency and auto-generation of the plugin descriptor file.").withRank(BMinusSetting)
val isMetaBuild = settingKey[Boolean]("If true, this is a metabuild, a project inside project/ directory, and sbt is added to the classpath.").withRank(DSetting)
val pluginCrossBuild = taskKey[Unit]("Dummy task to scope `sbtVersion in pluginCrossBuild`, which gets used for plugin compilation.")
val crossSbtVersions = settingKey[Seq[String]]("The versions of Sbt used when cross-building an sbt plugin.")
val printWarnings = taskKey[Unit]("Shows warnings from compilation, including ones that weren't printed initially.").withRank(BPlusTask)

View File

@ -22,6 +22,7 @@ import Keys.{
exportedProducts,
fullClasspath,
fullResolvers,
isMetaBuild,
loadedBuild,
onLoadMessage,
pluginData,
@ -1180,6 +1181,7 @@ private[sbt] object Load {
val autoPluginSettings: Seq[Setting[_]] = inScope(GlobalScope in LocalRootProject)(
Seq(
sbtPlugin :== true,
isMetaBuild :== true,
pluginData := {
val prod = (exportedProducts in Configurations.Runtime).value
val cp = (fullClasspath in Configurations.Runtime).value