From c11259ee2fc680d1d4ea8d468baf8be1db810584 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 3 Oct 2020 22:52:06 -0400 Subject: [PATCH] Epoch directory src/main/{scala-2, scala-3} Fixes https://github.com/sbt/sbt/issues/5895 --- main/src/main/scala/sbt/Defaults.scala | 21 +++++++++++++++++++ .../core/{ => src/main/scala-2}/A.scala | 0 .../src/main/{scala => scala-3}/Main.scala | 0 .../main/{scala => scala-3}/TraitParams.scala | 0 4 files changed, 21 insertions(+) rename sbt/src/sbt-test/actions/cross-strict-aggregation/core/{ => src/main/scala-2}/A.scala (100%) rename sbt/src/sbt-test/plugins/dotty/src/main/{scala => scala-3}/Main.scala (100%) rename sbt/src/sbt-test/plugins/dotty/src/main/{scala => scala-3}/TraitParams.scala (100%) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 28fa89f30..9b5ed9bcc 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -541,10 +541,13 @@ object Defaults extends BuildCommon { scalaSource := sourceDirectory.value / "scala", javaSource := sourceDirectory.value / "java", unmanagedSourceDirectories := { + val isDotty = ScalaInstance.isDotty(scalaVersion.value) + val epochVersion = if (isDotty) "3" else "2" makeCrossSources( scalaSource.value, javaSource.value, scalaBinaryVersion.value, + epochVersion, crossPaths.value ) ++ makePluginCrossSources( @@ -671,6 +674,24 @@ object Defaults extends BuildCommon { ) ) + def makeCrossSources( + scalaSrcDir: File, + javaSrcDir: File, + sv: String, + epochVersion: String, + cross: Boolean + ): Seq[File] = { + if (cross) + Seq( + scalaSrcDir, + scalaSrcDir.getParentFile / s"${scalaSrcDir.name}-$sv", + scalaSrcDir.getParentFile / s"${scalaSrcDir.name}-$epochVersion", + javaSrcDir, + ) + else + Seq(scalaSrcDir, javaSrcDir) + } + def makeCrossSources( scalaSrcDir: File, javaSrcDir: File, diff --git a/sbt/src/sbt-test/actions/cross-strict-aggregation/core/A.scala b/sbt/src/sbt-test/actions/cross-strict-aggregation/core/src/main/scala-2/A.scala similarity index 100% rename from sbt/src/sbt-test/actions/cross-strict-aggregation/core/A.scala rename to sbt/src/sbt-test/actions/cross-strict-aggregation/core/src/main/scala-2/A.scala diff --git a/sbt/src/sbt-test/plugins/dotty/src/main/scala/Main.scala b/sbt/src/sbt-test/plugins/dotty/src/main/scala-3/Main.scala similarity index 100% rename from sbt/src/sbt-test/plugins/dotty/src/main/scala/Main.scala rename to sbt/src/sbt-test/plugins/dotty/src/main/scala-3/Main.scala diff --git a/sbt/src/sbt-test/plugins/dotty/src/main/scala/TraitParams.scala b/sbt/src/sbt-test/plugins/dotty/src/main/scala-3/TraitParams.scala similarity index 100% rename from sbt/src/sbt-test/plugins/dotty/src/main/scala/TraitParams.scala rename to sbt/src/sbt-test/plugins/dotty/src/main/scala-3/TraitParams.scala