8000 Calculate scalajsenv.js source map location in generator · scala-js/scala-js@e85e508 · GitHub
[go: up one dir, main page]

Skip to content

Commit e85e508

Browse files
committed
Calculate scalajsenv.js source map location in generator
This will ensure it doesn't rot if we move the file.
1 parent 2909529 commit e85e508

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

linker/shared/src/main/scala/org/scalajs/linker/backend/emitter/CoreJSLibs.scala

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,7 @@ private[emitter] object CoreJSLibs {
130130
private class ScalaJSEnvVirtualJSFile(override val content: String) extends VirtualJSFile {
131131
override def path: String = "scalajsenv.js"
132132
override def version: Option[String] = Some("")
133-
134-
override def toURI: URI = {
135-
if (!ScalaJSVersions.currentIsSnapshot)
136-
gitHubBaseURI.resolve(s"v${ScalaJSVersions.current}/tools/$path")
137-
else
138-
super.toURI
139-
}
133+
override def toURI: URI = ScalaJSEnvHolder.sourceMapPath
140134
}
141135

142136
}

project/Build.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,7 @@ object Build {
675675

676676
sourceGenerators in Compile += Def.task {
677677
ScalaJSEnvGenerator.generateEnvHolder(
678-
baseDirectory.value.getParentFile,
678+
(baseDirectory in LocalProject("scalajs")).value,
679679
(sourceManaged in Compile).value)
680680
}.taskValue,
681681

project/build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ sources in Compile +=
3333

3434
sourceGenerators in Compile += Def.task {
3535
build.ScalaJSEnvGenerator.generateEnvHolder(
36-
baseDirectory.value.getParentFile / "linker",
36+
baseDirectory.value.getParentFile,
3737
(sourceManaged in Compile).value)
3838
}.taskValue
3939

project/project/ScalaJSEnvGenerator.scala

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,26 @@ package build
22

33
import sbt._
44

5+
import org.scalajs.ir.ScalaJSVersions
6+
57
object ScalaJSEnvGenerator {
68

9+
private final val relPath = "linker/scalajsenv.js"
10+
711
/** Generate a *.scala file that contains the scalajsenv as literal string
812
*
913
* We need this so the tools don't rely on I/O and/or resources.
1014
*/
11-
def generateEnvHolder(baseDir: File, sourceDir: File): Seq[File] = {
15+
def generateEnvHolder(projectRoot: File, sourceDir: File): Seq[File] = {
1216
val trg = sourceDir / "ScalaJSEnvHolder.scala"
13-
val env = baseDir / "scalajsenv.js"
17+
val env = projectRoot / relPath
18+
19+
val sourceMapPath = {
20+
if (!ScalaJSVersions.currentIsSnapshot)
21+
s"https://raw.githubusercontent.com/scala-js/scala-js/v${ScalaJSVersions.current}/$relPath"
22+
else
23+
env.getAbsolutePath
24+
}
1425

1526
if (!trg.exists() || trg.lastModified() < env.lastModified()) {
1627
val scalajsenv = IO.read(env).replaceAllLiterally("$", "$$")
@@ -19,8 +30,11 @@ object ScalaJSEnvGenerator {
1930
s"""
2031
package org.scalajs.linker.backend.emitter
2132

33+
import java.net.URI
34+
2235
private[emitter] object ScalaJSEnvHolder {
2336
final val scalajsenv = raw\"\"\"$scalajsenv\"\"\"
37+
final val sourceMapPath = new URI("$sourceMapPath")
2438
}
2539
"""
2640

project/project/build.sbt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sources in Compile += baseDirectory.value / "../../ir/src/main/scala/org/scalajs/ir/ScalaJSVersions.scala"

0 commit comments

Comments
 (0)
0