|
| 1 | +def scala213 = "2.13.4" |
| 2 | +def scalametaVersion = "4.4.8" |
| 3 | + |
| 4 | +inThisBuild( |
| 5 | + List( |
| 6 | + scalaVersion := scala213, |
| 7 | + crossScalaVersions := List(scala213), |
| 8 | + organization := "com.sourcegraph", |
| 9 | + scalafixDependencies += |
| 10 | + "com.github.liancheng" %% "organize-imports" % "0.5.0", |
| 11 | + scalafixCaching := true, |
| 12 | + scalacOptions ++= List("-Wunused:imports"), |
| 13 | + semanticdbEnabled := true, |
| 14 | + semanticdbVersion := scalametaVersion |
| 15 | + ) |
| 16 | +) |
| 17 | + |
| 18 | +name := "root" |
| 19 | +bloopGenerate.in(Compile) := None |
| 20 | +bloopGenerate.in(Test) := None |
| 21 | +skip.in(publish) := true |
| 22 | + |
| 23 | +commands += |
| 24 | + Command.command("fixAll") { s => |
| 25 | + "scalafixAll" :: "scalafmtAll" :: "scalafmtSbt" :: "javafmtAll" :: s |
| 26 | + } |
| 27 | + |
| 28 | +commands += |
| 29 | + Command.command("checkAll") { s => |
| 30 | + "scalafmtCheckAll" :: "scalafmtSbtCheck" :: "scalafixAll --check" :: |
| 31 | + "javafmtCheckAll" :: s |
| 32 | + } |
| 33 | + |
| 34 | +lazy val testSettings = List( |
| 35 | + skip.in(publish) := true, |
| 36 | + autoScalaLibrary := true, |
| 37 | + testFrameworks := List(new TestFramework("munit.Framework")), |
| 38 | + libraryDependencies ++= |
| 39 | + List( |
| 40 | + "org.scalameta" %% "munit" % "0.7.10", |
| 41 | + "org.scalameta" %% "scalameta" % scalametaVersion, |
| 42 | + "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.0", |
| 43 | + "io.get-coursier" %% "coursier" % "2.0.8", |
| 44 | + "com.lihaoyi" %% "pprint" % "0.6.1" |
| 45 | + ) |
| 46 | +) |
| 47 | + |
| 48 | +lazy val plugin = project |
| 49 | + .in(file("semanticdb-javac")) |
| 50 | + .settings( |
| 51 | + moduleName := "semanticdb-javac", |
| 52 | + autoScalaLibrary := false, |
| 53 | + incOptions ~= { old => |
| 54 | + old.withEnabled(false) |
| 55 | + }, |
| 56 | + crossPaths := false, |
| 57 | + PB.targets.in(Compile) := |
| 58 | + Seq(PB.gens.java -> (Compile / sourceManaged).value) |
| 59 | + ) |
| 60 | + |
| 61 | +lazy val minimized = project |
| 62 | + .in(file("tests/minimized")) |
| 63 | + .settings( |
| 64 | + autoScalaLibrary := false, |
| 65 | + skip.in(publish) := true, |
| 66 | + javacOptions.in(Compile) ++= |
| 67 | + List[String]( |
| 68 | + s"-Arandomtimestamp=${System.nanoTime()}", |
| 69 | + List( |
| 70 | + s"-Xplugin:semanticdb", |
| 71 | + s"-text:on", |
| 72 | + s"-verbose", |
| 73 | + s"-sourceroot:${baseDirectory.in(ThisBuild).value}", |
| 74 | + s"-targetroot:${target.in(Compile).value / "semanticdb"}" |
| 75 | + ).mkString(" ") |
| 76 | + ) |
| 77 | + ) |
| 78 | + .dependsOn(plugin) |
| 79 | + |
| 80 | +lazy val minimizedScala = project |
| 81 | + .in(file("tests/minimized-scala")) |
| 82 | + .settings( |
| 83 | + skip.in(publish) := true, |
| 84 | + semanticdbOptions ++= List("-P:semanticdb:text:on") |
| 85 | + ) |
| 86 | + .dependsOn(minimized) |
| 87 | + |
| 88 | +lazy val unit = project |
| 89 | + .in(file("tests/unit")) |
| 90 | + .settings( |
| 91 | + testSettings, |
| 92 | + buildInfoKeys := |
| 93 | + Seq[BuildInfoKey]( |
| 94 | + version, |
| 95 | + scalaVersion, |
| 96 | + "sourceroot" -> baseDirectory.in(ThisBuild).value, |
| 97 | + "minimizedJavaSourceDirectory" -> |
| 98 | + sourceDirectory.in(minimized, Compile).value / "java", |
| 99 | + "minimizedJavaTargetroot" -> |
| 100 | + target.in(minimized, Compile).value / "semanticdb", |
| 101 | + "minimizedScalaSourceDirectory" -> |
| 102 | + sourceDirectory.in(minimizedScala, Compile).value / "scala", |
| 103 | + "minimizedScalaTargetroot" -> |
| 104 | + semanticdbTargetRoot.in(minimizedScala, Compile).value |
| 105 | + ), |
| 106 | + buildInfoPackage := "tests" |
| 107 | + ) |
| 108 | + .dependsOn(plugin) |
| 109 | + .enablePlugins(BuildInfoPlugin) |
| 110 | + |
| 111 | +lazy val snapshots = project |
| 112 | + .in(file("tests/snapshots")) |
| 113 | + .settings( |
| 114 | + testSettings, |
| 115 | + buildInfoKeys := |
| 116 | + Seq[BuildInfoKey]( |
| 117 | + "snapshotDirectory" -> sourceDirectory.in(Compile).value / "generated" |
| 118 | + ), |
| 119 | + buildInfoPackage := "tests.snapshots" |
| 120 | + ) |
| 121 | + .dependsOn(minimizedScala, unit) |
| 122 | + .enablePlugins(BuildInfoPlugin) |
0 commit comments