diff options
Diffstat (limited to 'integration/src/test/resource/jawn/build.sc')
-rw-r--r-- | integration/src/test/resource/jawn/build.sc | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/integration/src/test/resource/jawn/build.sc b/integration/src/test/resource/jawn/build.sc new file mode 100644 index 00000000..9c9b41dc --- /dev/null +++ b/integration/src/test/resource/jawn/build.sc @@ -0,0 +1,58 @@ +import mill.scalalib +import mill.define.Cross +import mill.scalalib.{Dep, TestModule, Module} + +val jawn = Cross("2.10.6", "2.11.11", "2.12.3").map(new Jawn(_)) +class Jawn(crossVersion: String) extends mill.Module{ + trait JawnModule extends scalalib.SbtModule{ outer => + def scalaVersion = crossVersion + def scalacOptions = Seq( + "-deprecation", + "-optimize", + "-unchecked" + ) + def testProjectDeps: Seq[TestModule] = Nil + object test extends this.Tests{ + def projectDeps = super.projectDeps ++ testProjectDeps + def ivyDeps = Seq( + Dep("org.scalatest", "scalatest", "3.0.3"), + Dep("org.scalacheck", "scalacheck", "1.13.5") + ) + def testFramework = "org.scalatest.tools.Framework" + } + } + object Parser extends JawnModule{ + def basePath = ammonite.ops.pwd / 'target / 'workspace / 'jawn / 'parser + } + object Util extends JawnModule{ + def projectDeps = Seq(Parser) + def testProjectDeps = Seq(Parser.test) + def basePath = ammonite.ops.pwd / 'target / 'workspace / 'jawn / 'util + } + object Ast extends JawnModule{ + def projectDeps = Seq(Parser, Util) + def testProjectDeps = Seq(Parser.test, Util.test) + def basePath = ammonite.ops.pwd / 'target / 'workspace / 'jawn / 'acyclic + } + class Support(name: String, ivyDeps0: Dep*) extends JawnModule{ + def projectDeps = Seq[Module](Parser) + def basePath = ammonite.ops.pwd / 'target / 'workspace / 'jawn / 'support / name + def ivyDeps = ivyDeps0 + } + object Argonaut extends Support("argonaut", Dep("io.argonaut", "argonaut", "6.2")) + object Json4s extends Support("json4s", Dep("org.json4s", "json4s-ast", "3.5.2")) + + object Play extends Support("play"){ + def ivyDeps = mill.T{ + scalaBinaryVersion() match{ + case "2.10" => Seq(Dep("com.typesafe.play", "play-json", "2.4.11")) + case "2.11" => Seq(Dep("com.typesafe.play", "play-json", "2.5.15")) + case _ => Seq(Dep("com.typesafe.play", "play-json", "2.6.0")) + } + } + } + + object Rojoma extends Support("rojoma", Dep("com.rojoma", "rojoma-json", "2.4.3")) + object RojomaV3 extends Support("rojoma-v3", Dep("com.rojoma", "rojoma-json-v3", "3.7.2")) + object Spray extends Support("spray", Dep("io.spray", "spray-json", "1.3.3")) +}
\ No newline at end of file |