summaryrefslogtreecommitdiff
path: root/build.sc
diff options
context:
space:
mode:
authorRoman Timushev <rtimush@gmail.com>2017-12-13 16:00:48 +0100
committerRoman Timushev <rtimush@gmail.com>2017-12-29 18:52:49 +0100
commitc16849178e733a15d03e2de8d7571489467472be (patch)
tree7524f4700d0f13bcee889c9b46e92150a0f72312 /build.sc
parent4fe2ddf7436d041d9e29758ef5df991cdd3a267d (diff)
downloadmill-c16849178e733a15d03e2de8d7571489467472be.tar.gz
mill-c16849178e733a15d03e2de8d7571489467472be.tar.bz2
mill-c16849178e733a15d03e2de8d7571489467472be.zip
ScalaJS plugin build
Diffstat (limited to 'build.sc')
-rwxr-xr-xbuild.sc35
1 files changed, 33 insertions, 2 deletions
diff --git a/build.sc b/build.sc
index 9ee3001d..5fdfaa2a 100755
--- a/build.sc
+++ b/build.sc
@@ -1,4 +1,6 @@
import $file.shared
+import java.io.File
+
import ammonite.ops._
import coursier.maven.MavenRepository
import mill._
@@ -143,8 +145,37 @@ object ScalaPlugin extends MillModule {
}
}
}
+val jsbridges = for{
+ scalajsBinary <- mill.define.Cross("0.6", "1.0")
+} yield new MillModule{
+ def basePath = pwd / 'scalajsplugin / s"bridge_${scalajsBinary.replace('.', '_')}"
+ val scalajsVersion = scalajsBinary match {
+ case "0.6" => "0.6.21"
+ case "1.0" => "1.0.0-M2"
+ }
+ override def ivyDeps = Seq(
+ Dep("org.scala-js", "scalajs-tools", scalajsVersion)
+ )
+}
+
+object ScalaJSPlugin extends MillModule {
+
+ def projectDeps = Seq(ScalaPlugin)
+ def basePath = pwd / 'scalajsplugin
+
+ def bridgeClasspath(runDepClasspath: Seq[PathRef], classes: PathRef) =
+ (runDepClasspath :+ classes).map(_.path).mkString(File.pathSeparator)
+ def testArgs = T{
+ val mapping = Map(
+ "MILL_SCALAJS_BRIDGE_0_6" -> bridgeClasspath(jsbridges("0.6").runDepClasspath(), jsbridges("0.6").compile().classes),
+ "MILL_SCALAJS_BRIDGE_1_0" -> bridgeClasspath(jsbridges("1.0").runDepClasspath(), jsbridges("1.0").compile().classes)
+ )
+ for((k, v) <- mapping.toSeq) yield s"-D$k=$v"
+ }
+
+}
-val assemblyProjects = Seq(ScalaPlugin)
+val assemblyProjects = Seq(ScalaPlugin, ScalaJSPlugin)
def assemblyClasspath = mill.define.Task.traverse(assemblyProjects)(_.assemblyClasspath)
@@ -163,7 +194,7 @@ def assemblyBase(classpath: Seq[Path], extraArgs: String)
}
def devAssembly = T{
- assemblyBase(assemblyClasspath().flatten, ScalaPlugin.testArgs().mkString(" "))
+ assemblyBase(assemblyClasspath().flatten, (ScalaPlugin.testArgs() ++ ScalaJSPlugin.testArgs()).mkString(" "))
}
def releaseAssembly = T{