summaryrefslogtreecommitdiff
path: root/integration/test/resources/jawn/build.sc
diff options
context:
space:
mode:
Diffstat (limited to 'integration/test/resources/jawn/build.sc')
-rw-r--r--integration/test/resources/jawn/build.sc59
1 files changed, 59 insertions, 0 deletions
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