diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-18 10:35:57 -0700 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-18 10:35:57 -0700 |
commit | 3715c7bfb88de8daa86cd663d22057ec776cedcc (patch) | |
tree | 0a85083bcdb27867110e33c05c15ac13ae2865a9 /scalajslib/src | |
parent | 350a3115afca590bee6311dbed4a657fe9cca375 (diff) | |
parent | 0063444b422e317b9ee68c789f9b3224dcf28825 (diff) | |
download | mill-3715c7bfb88de8daa86cd663d22057ec776cedcc.tar.gz mill-3715c7bfb88de8daa86cd663d22057ec776cedcc.tar.bz2 mill-3715c7bfb88de8daa86cd663d22057ec776cedcc.zip |
Merge branch 'master' of github.com:lihaoyi/mill
Diffstat (limited to 'scalajslib/src')
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSBridge.scala | 19 | ||||
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSModule.scala | 17 |
2 files changed, 26 insertions, 10 deletions
diff --git a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala index 20e6542c..507d8af7 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala @@ -12,6 +12,12 @@ sealed trait OptimizeMode object FastOpt extends OptimizeMode object FullOpt extends OptimizeMode +sealed trait ModuleKind +object ModuleKind{ + object NoModule extends ModuleKind + object CommonJSModule extends ModuleKind +} + class ScalaJSWorker { private var scalaInstanceCache = Option.empty[(Long, ScalaJSBridge)] @@ -21,8 +27,8 @@ class ScalaJSWorker { scalaInstanceCache match { case Some((sig, bridge)) if sig == classloaderSig => bridge case _ => - val cl = new URLClassLoader( - toolsClasspath.map(_.toIO.toURI.toURL).toArray, + val cl = mill.util.ClassLoader.create( + toolsClasspath.map(_.toIO.toURI.toURL).toVector, getClass.getClassLoader ) val bridge = cl @@ -40,13 +46,15 @@ class ScalaJSWorker { libraries: Agg[Path], dest: File, main: Option[String], - fullOpt: Boolean): Unit = { + fullOpt: Boolean, + moduleKind: ModuleKind): Unit = { bridge(toolsClasspath).link( sources.items.map(_.toIO).toArray, libraries.items.map(_.toIO).toArray, dest, main.orNull, - fullOpt + fullOpt, + moduleKind ) } @@ -68,7 +76,8 @@ trait ScalaJSBridge { libraries: Array[File], dest: File, main: String, - fullOpt: Boolean): Unit + fullOpt: Boolean, + moduleKind: ModuleKind): Unit def run(config: NodeJSConfig, linkedFile: File): Unit diff --git a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala index 948b13df..92c071c2 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala @@ -72,7 +72,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => toolsClasspath(), runClasspath(), finalMainClassOpt().toOption, - FastOpt + FastOpt, + moduleKind() ) } @@ -82,7 +83,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => toolsClasspath(), runClasspath(), finalMainClassOpt().toOption, - FullOpt + FullOpt, + moduleKind() ) } @@ -114,7 +116,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => toolsClasspath: Agg[PathRef], runClasspath: Agg[PathRef], mainClass: Option[String], - mode: OptimizeMode)(implicit ctx: Ctx.Dest): PathRef = { + mode: OptimizeMode, + moduleKind: ModuleKind)(implicit ctx: Ctx.Dest): PathRef = { val outputPath = ctx.dest / "out.js" mkdir(ctx.dest) @@ -132,7 +135,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => libraries, outputPath.toIO, mainClass, - mode == FullOpt + mode == FullOpt, + moduleKind ) PathRef(outputPath) } @@ -159,6 +163,8 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => override def platformSuffix = s"_sjs${artifactScalaJSVersion()}" def nodeJSConfig = T { NodeJSConfig() } + + def moduleKind: T[ModuleKind] = T { ModuleKind.NoModule } } trait TestScalaJSModule extends ScalaJSModule with TestModule { @@ -177,7 +183,8 @@ trait TestScalaJSModule extends ScalaJSModule with TestModule { toolsClasspath(), scalaJSTestDeps() ++ runClasspath(), None, - FastOpt + FastOpt, + moduleKind() ) } |