diff --git a/modules/build/src/main/scala/scala/build/Build.scala b/modules/build/src/main/scala/scala/build/Build.scala index 921d1ab2ce..5784ed9dfe 100644 --- a/modules/build/src/main/scala/scala/build/Build.scala +++ b/modules/build/src/main/scala/scala/build/Build.scala @@ -560,7 +560,8 @@ object Build { value(validate(logger, options)) val project = Project( - workspace = inputs.workspace / ".scala", + directory = inputs.workspace / ".scala", + workspace = inputs.workspace, classesDir = classesDir0, scalaCompiler = scalaCompiler, scalaJsOptions = diff --git a/modules/build/src/main/scala/scala/build/Project.scala b/modules/build/src/main/scala/scala/build/Project.scala index e8e2e45fae..9c0c56d20e 100644 --- a/modules/build/src/main/scala/scala/build/Project.scala +++ b/modules/build/src/main/scala/scala/build/Project.scala @@ -12,6 +12,7 @@ import scala.build.options.Scope final case class Project( workspace: os.Path, + directory: os.Path, classesDir: os.Path, scalaCompiler: ScalaCompiler, scalaJsOptions: Option[BloopConfig.JsConfig], @@ -47,8 +48,8 @@ final case class Project( ) baseBloopProject( projectName, - workspace.toNIO, - (workspace / ".bloop" / projectName).toNIO, + directory.toNIO, + (directory / ".bloop" / projectName).toNIO, classesDir.toNIO, scope ) @@ -69,7 +70,7 @@ final case class Project( def writeBloopFile(logger: Logger): Boolean = { val bloopFileContent = writeAsJsonToArray(bloopFile)(BloopCodecs.codecFile) - val dest = workspace / ".bloop" / s"$projectName.json" + val dest = directory / ".bloop" / s"$projectName.json" val doWrite = !os.isFile(dest) || { val currentContent = os.read.bytes(dest) !Arrays.equals(currentContent, bloopFileContent) diff --git a/modules/integration/src/test/scala/scala/cli/integration/RunTestDefinitions.scala b/modules/integration/src/test/scala/scala/cli/integration/RunTestDefinitions.scala index 4a06a38487..6fd11d6456 100644 --- a/modules/integration/src/test/scala/scala/cli/integration/RunTestDefinitions.scala +++ b/modules/integration/src/test/scala/scala/cli/integration/RunTestDefinitions.scala @@ -1253,4 +1253,21 @@ abstract class RunTestDefinitions(val scalaVersionOpt: Option[String]) expect(p.out.text().trim == "hello") } } + + test("workspace dir") { + val inputs = TestInputs( + Seq( + os.rel / "Hello.scala" -> + """|// using lib com.lihaoyi::os-lib:0.7.8 + | + |object Hello extends App { + | println(os.pwd) + |}""".stripMargin + ) + ) + inputs.fromRoot { root => + val p = os.proc(TestUtil.cli, "Hello.scala").call(cwd = root) + expect(p.out.text().trim == root.toString) + } + } }