aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-02-22 17:12:41 +0800
committerChristopher Vogt <oss.nsp@cvogt.org>2017-02-22 17:38:45 +0800
commit63d77017a205a394e604ec9f943d0ef6d2511ef4 (patch)
tree072287c838bdd75373c959724e7025c2a404845c /plugins
parent66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff (diff)
downloadcbt-63d77017a205a394e604ec9f943d0ef6d2511ef4.tar.gz
cbt-63d77017a205a394e604ec9f943d0ef6d2511ef4.tar.bz2
cbt-63d77017a205a394e604ec9f943d0ef6d2511ef4.zip
refactor scalajs to make use of nested builds for scoping
Diffstat (limited to 'plugins')
-rw-r--r--plugins/scalajs/ScalaJsBuild.scala37
-rw-r--r--plugins/scalajs/ScalaJsLib.scala4
2 files changed, 18 insertions, 23 deletions
diff --git a/plugins/scalajs/ScalaJsBuild.scala b/plugins/scalajs/ScalaJsBuild.scala
index 1694aea..0c7222c 100644
--- a/plugins/scalajs/ScalaJsBuild.scala
+++ b/plugins/scalajs/ScalaJsBuild.scala
@@ -2,7 +2,7 @@ package cbt
import java.io.File
import java.net.URL
-trait ScalaJsBuild extends BaseBuild {
+trait ScalaJsBuild extends DynamicOverrides{
final protected val scalaJsLib = ScalaJsLib(
scalaJsVersion, scalaVersion, context.cbtLastModified, context.paths.mavenCache
)
@@ -21,28 +21,23 @@ trait ScalaJsBuild extends BaseBuild {
def %%%(artifactId: String) = new DependencyBuilder2(
groupId, artifactId + artifactIdSuffix, Some(scalaMajorVersion))
}
-
- private def link(mode: ScalaJsOutputMode, outputPath: File) = scalaJsLib.link(
- mode, outputPath, scalaJsOptions,
- target +: dependencies.collect{case d: BoundMavenDependency => d.jar}
- )
+
+ override def compile = {
+ super.compile
+ scalaJsLib.link(
+ scalaJsTargetFile, scalaJsOptions, target +: dependencies.collect{case d: BoundMavenDependency => d.jar}
+ )
+ None // FIXME: we need to rethink the concept of a "compile" task I think. There is no time to return here.
+ }
def scalaJsOptions: Seq[String] = Seq()
- def scalaJsOptionsFastOpt: Seq[String] = scalaJsOptions
- def scalaJsOptionsFullOpt: Seq[String] = scalaJsOptions
- private def output(mode: ScalaJsOutputMode) = target ++ s"/$projectName-${mode.fileSuffix}.js"
- protected def fastOptJSFile: File = output(FastOptJS)
- protected def fullOptJSFile: File = output(FullOptJS)
+ /** Where to put the generated js file */
+ def scalaJsTargetFile: File
- def fastOptJS = {
- compile
- link(FastOptJS, fastOptJSFile)
- fastOptJSFile
- }
- def fullOptJS = {
- compile
- link(FullOptJS, fullOptJSFile)
- fullOptJSFile
- }
+ override def cleanFiles = super.cleanFiles :+ scalaJsTargetFile :+ (scalaJsTargetFile ++ ".map")
+
+ def fullOpt = newBuild[ScalaJsBuild]("""
+ override def scalaJsOptions = "--fullOpt" +: super.scalaJsOptions
+ """)
}
diff --git a/plugins/scalajs/ScalaJsLib.scala b/plugins/scalajs/ScalaJsLib.scala
index 393ebfe..ae37bde 100644
--- a/plugins/scalajs/ScalaJsLib.scala
+++ b/plugins/scalajs/ScalaJsLib.scala
@@ -23,14 +23,14 @@ case class ScalaJsLib(
)
def link(
- mode: ScalaJsOutputMode, outputPath: File,
+ outputPath: File,
scalaJsOptions: Seq[String], entriesToLink: Seq[File]
) = {
val scalaJsCliDep = dep( "scalajs-cli_"++lib.libMajorVersion(scalaVersion) )
+ outputPath.getParentFile.mkdirs
lib.runMain(
"org.scalajs.cli.Scalajsld",
Seq(
- mode.option,
"--sourceMap",
"--stdlib", s"${scalaJsLibraryDependency.jar.getAbsolutePath}",
"--output", outputPath.string