From d14f56a3fd881f809e58783c49866d1491a5f3fe Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Sat, 20 Jan 2018 03:49:17 -0800 Subject: Swap over to simplified Mill module/source layout from SBT's Removes a lot of useless folders and gives us a chance to exercise this simplified layout. Support for the SBT layout is still verified by our integration tests --- integration/test/resources/jawn/build.sc | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 integration/test/resources/jawn/build.sc (limited to 'integration/test/resources/jawn/build.sc') diff --git a/integration/test/resources/jawn/build.sc b/integration/test/resources/jawn/build.sc new file mode 100644 index 00000000..4898a3cb --- /dev/null +++ b/integration/test/resources/jawn/build.sc @@ -0,0 +1,59 @@ +import mill.scalalib +import mill.Cross +import mill.scalalib.{Dep, TestModule, DepSyntax} +object jawn extends Cross[JawnModule]("2.10.6", "2.11.11", "2.12.3") +class JawnModule(crossVersion: String) extends mill.Module{ + override def basePath = super.basePath / ammonite.ops.up / ammonite.ops.up + + trait JawnModule extends scalalib.SbtModule{ + def scalaVersion = crossVersion + def scalacOptions = Seq( + "-deprecation", + "-optimize", + "-unchecked" + ) + def testModuleDeps: Seq[TestModule] = Nil + object test extends Tests{ + def moduleDeps = super.moduleDeps ++ testModuleDeps + def ivyDeps = Agg( + ivy"org.scalatest::scalatest:3.0.3", + ivy"org.scalacheck::scalacheck:1.13.5" + ) + def testFramework = "org.scalatest.tools.Framework" + } + } + object parser extends JawnModule + + object util extends JawnModule{ + def moduleDeps = Seq(parser) + def testModuleDeps = Seq(parser.test) + } + object ast extends JawnModule{ + def moduleDeps = Seq(parser, util) + def testModuleDeps = Seq(parser.test, util.test) + } + class Support(ivyDeps0: Dep*)(implicit ctx: mill.define.Ctx) extends JawnModule{ + def moduleDeps = Seq(parser) + def ivyDeps = Agg.from(ivyDeps0) + } + object support extends mill.Module{ + object argonaut extends Support(ivy"io.argonaut::argonaut:6.2") + object json4s extends Support(ivy"org.json4s::json4s-ast:3.5.2") + + object play extends Support(){ + def ivyDeps = mill.T{ + scalaBinaryVersion() match{ + case "2.10" => Agg(ivy"com.typesafe.play::play-json:2.4.11") + case "2.11" => Agg(ivy"com.typesafe.play::play-json:2.5.15") + case _ => Agg(ivy"com.typesafe.play::play-json:2.6.0") + } + } + } + + object rojoma extends Support(ivy"com.rojoma::rojoma-json:2.4.3") + object rojomaV3 extends Support(ivy"com.rojoma::rojoma-json-v3:3.7.2"){ + override def basePath = super.basePath / ammonite.ops.up / "rojoma-v3" + } + object spray extends Support(ivy"io.spray::spray-json:1.3.3") + } +} \ No newline at end of file -- cgit v1.2.3