[sbt] クロスコンパイルのバージョン別に異なる scalaOptions を適用する

2020/02/20   #Scala  #sbt 
このエントリーをはてなブックマークに追加

例えば 2.122.13 のクロスコンパイルする場合に、
2.12 だけ -Xfatal-warnings をつけたい場合。

crossScalaVersions := Seq("2.12.10", "2.13.1")
:
scalacOptions in Compile ++= Seq(
  "-feature",
  "-deprecation",
  "-unchecked",
  "-Xlint:",
  "-Xlint:-missing-interpolator",
  "-Yno-adapted-args",
  "-Ywarn-dead-code",
  "-Ywarn-numeric-widen",
  "-language:implicitConversions"
) ++ PartialFunction.condOpt(CrossVersion.partialVersion(scalaVersion.value)) {
  case Some((2, v)) if v <= 12 => "-Xfatal-warnings"
}.toSeq

のような感じにする。