From c16849178e733a15d03e2de8d7571489467472be Mon Sep 17 00:00:00 2001 From: Roman Timushev Date: Wed, 13 Dec 2017 16:00:48 +0100 Subject: ScalaJS plugin build --- build.sc | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'build.sc') 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{ -- cgit v1.2.3