scalafix/build.sbt (72 lines of code) (raw):
lazy val V = _root_.scalafix.sbt.BuildInfo
inThisBuild(
List(
resolvers ++= Resolver.sonatypeOssRepos("snapshots"),
organization := "com.spotify",
scalaVersion := V.scala212,
scalacOptions ++= List("-Yrangepos"),
publish / skip := true,
semanticdbEnabled := true,
semanticdbVersion := scalafixSemanticdb.revision,
semanticdbIncludeInJar := true,
scalafmtOnCompile := false,
scalafmtConfig := baseDirectory.value / ".." / ".scalafmt.conf"
)
)
lazy val root = project
.in(file("."))
.aggregate(
tests.projectRefs ++ Seq[sbt.ProjectReference](
// 0.7
`input-0_7`,
`output-0_7`,
// scalafix
rules
): _*
)
lazy val rules = project
.settings(
moduleName := "scalafix",
libraryDependencies ++= Seq(
"ch.epfl.scala" %% "scalafix-core" % V.scalafixVersion
)
)
def magnolify(version: String): List[ModuleID] = {
val modules = List(
"magnolify-avro",
"magnolify-bigquery",
"magnolify-bigtable",
"magnolify-cats",
"magnolify-datastore",
"magnolify-guava",
"magnolify-neo4j",
"magnolify-parquet",
"magnolify-protobuf",
"magnolify-refined",
"magnolify-shared",
"magnolify-scalacheck",
"magnolify-tensorflow"
)
modules.map { name => ("com.spotify" %% name % version % "compile->compile,provided") }
}
// coursied does not respect compile->compile,provided
ThisBuild / useCoursier := false
lazy val `input-0_7` = project
.settings(
libraryDependencies ++= magnolify("0.6.0")
)
lazy val `output-0_7` = project
.settings(
libraryDependencies ++= magnolify("0.7.0")
)
lazy val magnolify0_7 = ConfigAxis("-magnolify-0_7", "-0_7-")
lazy val tests = projectMatrix
.in(file("tests"))
.enablePlugins(ScalafixTestkitPlugin)
.customRow(
scalaVersions = Seq(V.scala212),
axisValues = Seq(magnolify0_7, VirtualAxis.jvm),
_.settings(
moduleName := name.value + magnolify0_7.idSuffix,
scalafixTestkitOutputSourceDirectories := (`output-0_7` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputSourceDirectories := (`input-0_7` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputClasspath := (`input-0_7` / Compile / fullClasspath).value
).dependsOn(rules)
)