When building with Scala 2.10 and SBT 0.13.2, I want to have -language:_ , but this is not recognized by Scala 2.9. This raises the question of setting up different scalacOptions for cross-compiling ( Conditional scalacOptions with SBT ), but it's roughly build.sbt . I use Build.scala because I am doing a multi- Build.scala build.
I tried this:
def scalacOptionsVersion(v: String) = { Seq( "-unchecked", "-deprecation", "-Xlint", "-Xfatal-warnings", "-Ywarn-dead-code", "-target:jvm-1.7", "-encoding", "UTF-8") ++ ( if (v.startsWith("2.9")) Seq() else Seq("-language:_")) } override val settings = super.settings ++ Seq( ..., scalaVersion := "2.10.4", scalacOptions <++= scalaVersion(scalacOptionsVersion), crossScalaVersions := Seq("2.9.2", "2.10.4", "2.11.4"), ... )
but I get an error:
[error] /Users/benwing/devel/lemkit/scala/project/build.scala:29: type mismatch; [error] found : sbt.Def.Initialize[Equals] [error] required: sbt.Def.Initialize[sbt.Task[?]] [error] Note: Equals >: sbt.Task[?], but trait Initialize is invariant in type T. [error] You may wish to define T as -T instead. (SLS 4.5) [error] scalacOptions <++= scalaVersion(scalacOptionsVersion), [error] ^ [error] one error found
reference
source share