diff options
author | Nikolay Tatarinov <5min4eq.unity@gmail.com> | 2018-02-26 08:35:41 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-26 08:35:41 +0300 |
commit | 30d753f43b28afe49cc803a3cc1d25956d6d7e52 (patch) | |
tree | 778484c7ef35e9bff87ae7975fce14a09c6f262e /scalajslib/src | |
parent | 0b2efbaf943501da2dac3741a9a8322597cc35e7 (diff) | |
download | mill-30d753f43b28afe49cc803a3cc1d25956d6d7e52.tar.gz mill-30d753f43b28afe49cc803a3cc1d25956d6d7e52.tar.bz2 mill-30d753f43b28afe49cc803a3cc1d25956d6d7e52.zip |
make scala.js work with multi-module projects (#165)
Diffstat (limited to 'scalajslib/src')
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSModule.scala | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala index ab67cd95..6fc3e964 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala @@ -1,7 +1,7 @@ package mill package scalajslib -import ammonite.ops.{Path, ls, mkdir, rm} +import ammonite.ops.{Path, exists, ls, mkdir, rm} import coursier.Cache import coursier.maven.MavenRepository import mill.eval.PathRef @@ -69,7 +69,6 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => link( ScalaJSBridge.scalaJSBridge(), toolsClasspath(), - Seq(compile()), runClasspath(), mainClass(), FastOpt @@ -80,7 +79,6 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => link( ScalaJSBridge.scalaJSBridge(), toolsClasspath(), - Seq(compile()), runClasspath(), mainClass(), FullOpt @@ -106,7 +104,6 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => val linkedFile = link( ScalaJSBridge.scalaJSBridge(), toolsClasspath(), - Seq(compile()), runClasspath(), Some(mainClass), FastOpt @@ -120,8 +117,7 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => def link(worker: ScalaJSWorker, toolsClasspath: Agg[PathRef], - input: Seq[CompilationResult], - libraries: Agg[PathRef], + runClasspath: Agg[PathRef], mainClass: Option[String], mode: OptimizeMode)(implicit ctx: Ctx.Dest): PathRef = { val outputPath = ctx.dest / "out.js" @@ -129,16 +125,16 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => mkdir(ctx.dest) rm(outputPath) - val inputFiles = Agg.from(for { - compiled <- input - file <- ls.rec(compiled.classes.path) - if file.ext == "sjsir" - } yield file) - val inputLibraries = libraries.map(_.path).filter(_.ext == "jar") + val classpath = runClasspath.map(_.path) + val sjsirFiles = classpath + .filter(path => exists(path) && path.isDir) + .flatMap(ls.rec) + .filter(_.ext == "sjsir") + val libraries = classpath.filter(_.ext == "jar") worker.link( toolsClasspath.map(_.path), - inputFiles, - inputLibraries, + sjsirFiles, + libraries, outputPath.toIO, mainClass, mode == FullOpt @@ -182,7 +178,6 @@ trait TestScalaJSModule extends ScalaJSModule with TestModule { link( ScalaJSBridge.scalaJSBridge(), toolsClasspath(), - compile() +: upstreamCompileOutput(), scalaJSTestDeps() ++ runClasspath(), None, FastOpt |