Skip to content

Commit 70a3b16

Browse files
committed
Explicitly pass the scala3-sbt-bridge artifact to Bloop
1 parent 5e29a42 commit 70a3b16

File tree

6 files changed

+41
-15
lines changed

6 files changed

+41
-15
lines changed

modules/build/src/main/scala/scala/build/Build.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,8 @@ object Build {
906906
scalaVersion = params.scalaVersion,
907907
scalaBinaryVersion = params.scalaBinaryVersion,
908908
scalacOptions = scalacOptions.toSeq.map(_.value),
909-
compilerClassPath = scalaArtifacts.compilerClassPath
909+
compilerClassPath = scalaArtifacts.compilerClassPath,
910+
bridgeJarsOpt = scalaArtifacts.bridgeJarsOpt
910911
)
911912
Some(compilerParams)
912913

modules/build/src/main/scala/scala/build/Project.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ final case class Project(
4848
val scalaConfigOpt = scalaCompiler.map { scalaCompiler0 =>
4949
bloopScalaConfig("org.scala-lang", "scala-compiler", scalaCompiler0.scalaVersion).copy(
5050
options = updateScalacOptions(scalaCompiler0.scalacOptions).map(_.value),
51-
jars = scalaCompiler0.compilerClassPath.map(_.toNIO).toList
51+
jars = scalaCompiler0.compilerClassPath.map(_.toNIO).toList,
52+
bridgeJars = scalaCompiler0.bridgeJarsOpt.map(_.map(_.toNIO).toList)
5253
)
5354
}
5455
baseBloopProject(
@@ -229,6 +230,7 @@ object Project {
229230
options = Nil,
230231
jars = Nil,
231232
analysis = None,
232-
setup = None
233+
setup = None,
234+
bridgeJars = None
233235
)
234236
}

modules/build/src/main/scala/scala/build/ScalaCompilerParams.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ final case class ScalaCompilerParams(
44
scalaVersion: String,
55
scalaBinaryVersion: String,
66
scalacOptions: Seq[String],
7-
compilerClassPath: Seq[os.Path]
7+
compilerClassPath: Seq[os.Path],
8+
bridgeJarsOpt: Option[Seq[os.Path]]
89
)

modules/integration/src/test/scala/scala/cli/integration/SipScalaTests.scala

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -607,15 +607,19 @@ class SipScalaTests extends ScalaCliSuite with SbtTestHelper with MillTestHelper
607607
.fromRoot { root =>
608608
val localRepoPath = root / "local-repo"
609609
val sv = "3.4.1-RC1"
610-
val csRes = os.proc(
611-
TestUtil.cs,
612-
"fetch",
613-
"--cache",
614-
localRepoPath,
615-
s"org.scala-lang:scala3-compiler_3:$sv"
616-
)
617-
.call(cwd = root)
618-
expect(csRes.exitCode == 0)
610+
val artifactNames =
611+
Seq("scala3-compiler_3", "scala3-sbt-bridge")
612+
for { artifactName <- artifactNames } {
613+
val csRes = os.proc(
614+
TestUtil.cs,
615+
"fetch",
616+
"--cache",
617+
localRepoPath,
618+
s"org.scala-lang:$artifactName:$sv"
619+
)
620+
.call(cwd = root)
621+
expect(csRes.exitCode == 0)
622+
}
619623
val buildServerOptions =
620624
if (withBloop) Nil else Seq("--server=false")
621625
val r = os.proc(

modules/options/src/main/scala/scala/build/Artifacts.scala

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,22 @@ object Artifacts {
176176
).left.flatMap(_.maybeRecoverWithDefault(Seq.empty, maybeRecoverOnError))
177177
}
178178

179+
val bridgeJarsOpt = Option.when(scalaArtifactsParams.params.scalaVersion.startsWith("3.")) {
180+
Seq(dep"org.scala-lang:scala3-sbt-bridge:${scalaArtifactsParams.params.scalaVersion}")
181+
}.map { bridgeDependencies =>
182+
value {
183+
artifacts(
184+
bridgeDependencies.map(Positioned.none),
185+
allExtraRepositories,
186+
Some(scalaArtifactsParams.params),
187+
logger,
188+
cache.withMessage(
189+
s"Downloading Scala ${scalaArtifactsParams.params.scalaVersion} bridge"
190+
)
191+
).left.flatMap(_.maybeRecoverWithDefault(Seq.empty, maybeRecoverOnError))
192+
}.map(_._2)
193+
}
194+
179195
def fetchedArtifactToPath(fetched: Fetch.Result): Seq[os.Path] =
180196
fetched.fullDetailedArtifacts.collect { case (_, _, _, Some(f)) => os.Path(f, Os.pwd) }
181197

@@ -273,7 +289,8 @@ object Artifacts {
273289
scalaNativeCli,
274290
internalDependencies,
275291
scalapyDependencies,
276-
scalaArtifactsParams.params
292+
scalaArtifactsParams.params,
293+
bridgeJarsOpt
277294
)
278295
Some(scala)
279296

modules/options/src/main/scala/scala/build/ScalaArtifacts.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ final case class ScalaArtifacts(
1010
scalaNativeCli: Seq[os.Path],
1111
internalDependencies: Seq[AnyDependency],
1212
extraDependencies: Seq[AnyDependency],
13-
params: ScalaParameters
13+
params: ScalaParameters,
14+
bridgeJarsOpt: Option[Seq[os.Path]]
1415
) {
1516

1617
lazy val compilerClassPath: Seq[os.Path] =

0 commit comments

Comments
 (0)