diff --git a/src/main/scala/sbt/internal/ProjectMatrix.scala b/src/main/scala/sbt/internal/ProjectMatrix.scala index cacb82596..0eb191b57 100644 --- a/src/main/scala/sbt/internal/ProjectMatrix.scala +++ b/src/main/scala/sbt/internal/ProjectMatrix.scala @@ -270,7 +270,8 @@ object ProjectMatrix { inConfig(Compile)(makeSources(nonScalaDirSuffix, svDirSuffix)), inConfig(Test)(makeSources(nonScalaDirSuffix, svDirSuffix)), projectDependencies := projectDependenciesTask.value, - ProjectMatrixKeys.virtualAxes := axes + ProjectMatrixKeys.virtualAxes := axes, + ProjectMatrixKeys.projectMatrixBaseDirectory := base, ) .settings(self.settings) .configure(transforms: _*) diff --git a/src/main/scala/sbtprojectmatrix/ProjectMatrixPlugin.scala b/src/main/scala/sbtprojectmatrix/ProjectMatrixPlugin.scala index 701916bc7..54d883ab2 100644 --- a/src/main/scala/sbtprojectmatrix/ProjectMatrixPlugin.scala +++ b/src/main/scala/sbtprojectmatrix/ProjectMatrixPlugin.scala @@ -7,6 +7,7 @@ import scala.language.experimental.macros trait ProjectMatrixKeys { val virtualAxes = settingKey[Seq[VirtualAxis]]("Virtual axes for the project") + val projectMatrixBaseDirectory = settingKey[File]("Base directory of the current project matrix") } object ProjectMatrixKeys extends ProjectMatrixKeys diff --git a/src/sbt-test/projectMatrix/jvm-sandwich/build.sbt b/src/sbt-test/projectMatrix/jvm-sandwich/build.sbt index 3d74a9839..98c3f574a 100644 --- a/src/sbt-test/projectMatrix/jvm-sandwich/build.sbt +++ b/src/sbt-test/projectMatrix/jvm-sandwich/build.sbt @@ -41,6 +41,7 @@ lazy val bazApp = (projectMatrix in file("baz-app")) streams.value.log.info(cp.toString) assert(cp.contains("baz-core_2.13-0.1.0-SNAPSHOT.jar"), s"$cp") assert(!cp.contains("baz-core_3.0.0-M1-0.1.0-SNAPSHOT.jar"), s"$cp") + assert(projectMatrixBaseDirectory.value == file("baz-app")) }, ) .jvmPlatform(scalaVersions = Seq(scala213)) diff --git a/src/sbt-test/projectMatrix/jvm/build.sbt b/src/sbt-test/projectMatrix/jvm/build.sbt index b7d58fb57..65b08b9e6 100644 --- a/src/sbt-test/projectMatrix/jvm/build.sbt +++ b/src/sbt-test/projectMatrix/jvm/build.sbt @@ -19,6 +19,7 @@ lazy val core = (projectMatrix in file("core")) .settings( check := { assert(moduleName.value == "core", s"moduleName is ${moduleName.value}") + assert(projectMatrixBaseDirectory.value == file("core")) }, ) .jvmPlatform(scalaVersions = Seq(scala213, scala212)) @@ -27,6 +28,7 @@ lazy val intf = (projectMatrix in file("intf")) .settings( check := { assert(moduleName.value == "intf", s"moduleName is ${moduleName.value}") + assert(projectMatrixBaseDirectory.value == file("intf")) }, ) .jvmPlatform(autoScalaLibrary = false) diff --git a/src/sbt-test/projectMatrix/projectAxes/build.sbt b/src/sbt-test/projectMatrix/projectAxes/build.sbt index d8abb39ce..87667c258 100644 --- a/src/sbt-test/projectMatrix/projectAxes/build.sbt +++ b/src/sbt-test/projectMatrix/projectAxes/build.sbt @@ -15,6 +15,7 @@ lazy val core = (projectMatrix in file("core")) .settings( check := { assert(platformTest.value.endsWith("-platform")) + assert(projectMatrixBaseDirectory.value == file("core")) }, ) .jvmPlatform(scalaVersions = Seq(scala213, scala212))