diff --git a/main-settings/src/main/scala/sbt/std/TaskMacro.scala b/main-settings/src/main/scala/sbt/std/TaskMacro.scala index 1390145a8..c12900150 100644 --- a/main-settings/src/main/scala/sbt/std/TaskMacro.scala +++ b/main-settings/src/main/scala/sbt/std/TaskMacro.scala @@ -70,13 +70,11 @@ object TaskMacro { final val TransformInitName = "transform" final val InputTaskCreateDynName = "createDyn" final val InputTaskCreateFreeName = "createFree" - final val append1Migration = "Use `lhs += { x.value }`." - final val appendNMigration = "Use `lhs ++= { x.value }`." + final val append1Migration = "`<+=` operator is deprecated. Use `lhs += { x.value }`." + final val appendNMigration = "`<++=` operator is deprecated. Use `lhs ++= { x.value }`." final val assignMigration = - """Use `key := { x.value }` or `key ~= (old => { newValue })`. - |The RHS of `<<=` takes an `Initialize[_]` expression, which can be converted to `:=` style - |by wrapping the expression in parenthesis, and calling `.value` at the end. - |For example, `key := (key.dependsOn(compile in Test)).value`.""".stripMargin + """`<<=` operator is deprecated. Use `key := { x.value }` or `key ~= (old => { newValue })`. + |See http://www.scala-sbt.org/0.13/docs/Migrating-from-sbt-012x.html""".stripMargin def taskMacroImpl[T: c.WeakTypeTag](c: blackbox.Context)(t: c.Expr[T]): c.Expr[Initialize[Task[T]]] = Instance.contImpl[T, Id](c, FullInstance, FullConvert, MixedBuilder)(Left(t), Instance.idTransform[c.type]) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index d05bfbe05..6dab937c3 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1091,8 +1091,7 @@ object Defaults extends BuildCommon { lazy val runnerSettings: Seq[Setting[_]] = Seq(runnerTask) lazy val baseTasks: Seq[Setting[_]] = projectTasks ++ packageBase - - lazy val configSettings: Seq[Setting[_]] = Classpaths.configSettings ++ configTasks ++ configPaths ++ packageConfig ++ Classpaths.compilerPluginConfig + lazy val configSettings: Seq[Setting[_]] = Classpaths.configSettings ++ configTasks ++ configPaths ++ packageConfig ++ Classpaths.compilerPluginConfig ++ deprecationSettings lazy val compileSettings: Seq[Setting[_]] = configSettings ++ (mainRunMainTask +: mainRunTask +: addBaseSources) ++ Classpaths.addUnmanagedLibrary lazy val testSettings: Seq[Setting[_]] = configSettings ++ testTasks @@ -1107,7 +1106,17 @@ object Defaults extends BuildCommon { baseDirectory := thisProject.value.base, target := baseDirectory.value / "target" ) - + // build.sbt is treated a Scala source of metabuild, so to enable deprecation flag on build.sbt we set the option here. + lazy val deprecationSettings: Seq[Setting[_]] = + inConfig(Compile)(Seq( + scalacOptions := { + val old = scalacOptions.value + val existing = old.toSet + val d = "-deprecation" + if (sbtPlugin.value && !existing(d)) d :: old.toList + else old + } + )) } object Classpaths { import Keys._