From c7c2897cad4f07a4e3097595287c66cc445e98ba Mon Sep 17 00:00:00 2001 From: Lukasz Stefaniak Date: Tue, 29 Mar 2016 19:29:11 +0200 Subject: [PATCH] Add support for scala.js runtime --- src/main/scala/scoverage/ScoverageSbtPlugin.scala | 13 +++++++++++-- src/sbt-test/scoverage/scalajs/build.sbt | 2 +- src/sbt-test/scoverage/scalajs/project/plugins.sbt | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/scala/scoverage/ScoverageSbtPlugin.scala b/src/main/scala/scoverage/ScoverageSbtPlugin.scala index 3176df7c..f578c7ea 100644 --- a/src/main/scala/scoverage/ScoverageSbtPlugin.scala +++ b/src/main/scala/scoverage/ScoverageSbtPlugin.scala @@ -33,8 +33,8 @@ object ScoverageSbtPlugin extends AutoPlugin { coverageScalacPluginVersion := DefaultScoverageVersion, libraryDependencies ++= { if (coverageEnabled.value) Seq( - OrgScoverage % (ScalacRuntimeArtifact + "_" + scalaBinaryVersion.value) % coverageScalacPluginVersion.value, - OrgScoverage % (ScalacPluginArtifact + "_" + scalaBinaryVersion.value) % coverageScalacPluginVersion.value % "scoveragePlugin->default(compile)" + OrgScoverage %% (ScalacRuntimeArtifact + optionalScalaJsSuffix(libraryDependencies.value)) % coverageScalacPluginVersion.value, + OrgScoverage %% ScalacPluginArtifact % coverageScalacPluginVersion.value % "scoveragePlugin->default(compile)" ) else Nil }, scalacOptions in(Compile, compile) ++= scoverageScalacOptions.value, @@ -63,6 +63,15 @@ object ScoverageSbtPlugin extends AutoPlugin { extracted.append(newSettings, state) } + // returns "_sjs$sjsVersion" for Scala.js projects or "" otherwise + private def optionalScalaJsSuffix(deps: Seq[ModuleID]): String = { + val sjsClassifier = deps.collectFirst{ + case ModuleID("org.scala-js", "scalajs-library", v, _, _, _, _, _, _, _, _) => v + }.map(_.take(3)).map(sjsVersion => "_sjs" + sjsVersion) + + sjsClassifier getOrElse "" + } + private lazy val coverageReport0 = Def.task { val target = crossTarget.value val log = streams.value.log diff --git a/src/sbt-test/scoverage/scalajs/build.sbt b/src/sbt-test/scoverage/scalajs/build.sbt index 5c1bc16f..83ca4da5 100644 --- a/src/sbt-test/scoverage/scalajs/build.sbt +++ b/src/sbt-test/scoverage/scalajs/build.sbt @@ -3,7 +3,7 @@ lazy val root = (project in file(".")).aggregate(crossJS, crossJVM) lazy val cross = crossProject.in(file("sjstest")).settings( scalaVersion := "2.11.7", libraryDependencies ++= Seq( - "org.scalatest" %%% "scalatest" % "3.0.0-M15" % "test" + "org.scalatest" %%% "scalatest" % "3.0.0" % "test" ) ) diff --git a/src/sbt-test/scoverage/scalajs/project/plugins.sbt b/src/sbt-test/scoverage/scalajs/project/plugins.sbt index 5bbd441d..76da4f6b 100644 --- a/src/sbt-test/scoverage/scalajs/project/plugins.sbt +++ b/src/sbt-test/scoverage/scalajs/project/plugins.sbt @@ -12,4 +12,4 @@ resolvers += Classpaths.sbtPluginReleases else addSbtPlugin("org.scoverage" %% "sbt-scoverage" % pluginVersion) } -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.8") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.12")