Scala-2-dependsOn-Scala-3 feature with Scala.js

fix 5971
This commit is contained in:
xuwei-k 2020-10-18 12:49:08 +09:00
parent 84b84ec58d
commit d582dfc4be
6 changed files with 43 additions and 7 deletions

View File

@ -3594,13 +3594,15 @@ object Classpaths {
depSBV <- (dep.project / scalaBinaryVersion).get(data)
depCross <- (dep.project / crossVersion).get(data)
} yield {
if (isScala2Scala3Sandwich(sbv, depSBV) && depCross == CrossVersion.binary)
depProjId
.withCrossVersion(CrossVersion.constant(depSBV))
.withConfigurations(dep.configuration)
.withExplicitArtifacts(Vector.empty)
else
depProjId.withConfigurations(dep.configuration).withExplicitArtifacts(Vector.empty)
depCross match {
case b: CrossVersion.Binary if isScala2Scala3Sandwich(sbv, depSBV) =>
depProjId
.withCrossVersion(CrossVersion.constant(b.prefix + depSBV))
.withConfigurations(dep.configuration)
.withExplicitArtifacts(Vector.empty)
case _ =>
depProjId.withConfigurations(dep.configuration).withExplicitArtifacts(Vector.empty)
}
}
}
}

View File

@ -0,0 +1,9 @@
package app
import mylib._
object Main {
def main(args: Array[String]): Unit = {
println(MyLib.square(5))
}
}

View File

@ -0,0 +1,17 @@
// TODO use 2.13.4 when it's out
ThisBuild / scalaVersion := "2.13.4-bin-d526da6"
Global / resolvers += "scala-integration".at("https://scala-ci.typesafe.com/artifactory/scala-integration/")
lazy val scala3code = project
.enablePlugins(ScalaJSPlugin)
.settings(scalaVersion := "0.27.0-RC1")
lazy val app = project
.enablePlugins(ScalaJSPlugin)
.dependsOn(scala3code)
.settings(
libraryDependencies ~= (_.filterNot(_.name.contains("scalajs-compiler"))),
addCompilerPlugin("org.scala-js" % "scalajs-compiler_2.13.3" % scalaJSVersion),
scalaJSUseMainModuleInitializer := true,
)

View File

@ -0,0 +1,2 @@
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.4.3")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.3.0")

View File

@ -0,0 +1,5 @@
package mylib
object MyLib {
def square(x: Int): Int = x * x
}

View File

@ -0,0 +1 @@
> app/run