summaryrefslogtreecommitdiff
path: root/integration/src/test/resources/jawn/build.sc
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-01-07 00:31:34 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-01-07 00:31:34 -0800
commit259b57dd34fc6762835dde236ba4e459dec32103 (patch)
treedb6e6b7bb5d602e19171c039f600a3cf2fd02d7e /integration/src/test/resources/jawn/build.sc
parent7cd18fd936b95410274be031a8231e5a3d9866a4 (diff)
downloadmill-259b57dd34fc6762835dde236ba4e459dec32103.tar.gz
mill-259b57dd34fc6762835dde236ba4e459dec32103.tar.bz2
mill-259b57dd34fc6762835dde236ba4e459dec32103.zip
Rename `resource/` folders `resources/` to properly match SBT convention, making changes within them get picked up by the file-watching `~compile`/`~test` commands
Diffstat (limited to 'integration/src/test/resources/jawn/build.sc')
-rw-r--r--integration/src/test/resources/jawn/build.sc60
1 files changed, 60 insertions, 0 deletions
diff --git a/integration/src/test/resources/jawn/build.sc b/integration/src/test/resources/jawn/build.sc
new file mode 100644
index 00000000..074e30f9
--- /dev/null
+++ b/integration/src/test/resources/jawn/build.sc
@@ -0,0 +1,60 @@
+import mill.scalalib
+import mill.CrossModule
+import mill.scalalib.{Dep, TestModule, Module}
+
+object jawn extends CrossModule(JawnModule, "2.10.6", "2.11.11", "2.12.3")
+case class JawnModule(crossVersion: String) extends mill.Module{
+ override def basePath = super.basePath / ammonite.ops.up
+
+ trait JawnModule extends scalalib.SbtModule{
+ def scalaVersion = crossVersion
+ def scalacOptions = Seq(
+ "-deprecation",
+ "-optimize",
+ "-unchecked"
+ )
+ def testProjectDeps: Seq[TestModule] = Nil
+ object test extends 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
+
+ object util extends JawnModule{
+ def projectDeps = Seq(parser)
+ def testProjectDeps = Seq(parser.test)
+ }
+ object ast extends JawnModule{
+ def projectDeps = Seq(parser, util)
+ def testProjectDeps = Seq(parser.test, util.test)
+ }
+ class Support(ivyDeps0: Dep*)(implicit ctx: mill.Module.Ctx) extends JawnModule{
+ def projectDeps = Seq[Module](parser)
+ def ivyDeps = ivyDeps0
+ }
+ object support extends mill.Module{
+ object argonaut extends Support(Dep("io.argonaut", "argonaut", "6.2"))
+ object json4s extends Support(Dep("org.json4s", "json4s-ast", "3.5.2"))
+
+ object play extends Support(){
+ 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(Dep("com.rojoma", "rojoma-json", "2.4.3"))
+ object rojomaV3 extends Support(Dep("com.rojoma", "rojoma-json-v3", "3.7.2")){
+ override def basePath = super.basePath / ammonite.ops.up / "rojoma-v3"
+ }
+ object spray extends Support(Dep("io.spray", "spray-json", "1.3.3"))
+ }
+} \ No newline at end of file