From 51d64c7eefabe5aff33476b03bdfaeb6bc85a670 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Wed, 23 Dec 2020 14:56:49 +0100 Subject: [PATCH] Add scala3doc artifact --- .../ConfigurationExtra.scala | 1 + .../librarymanagement/ScalaArtifacts.scala | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/core/src/main/scala/sbt/librarymanagement/ConfigurationExtra.scala b/core/src/main/scala/sbt/librarymanagement/ConfigurationExtra.scala index d15297198..7431e8950 100644 --- a/core/src/main/scala/sbt/librarymanagement/ConfigurationExtra.scala +++ b/core/src/main/scala/sbt/librarymanagement/ConfigurationExtra.scala @@ -48,6 +48,7 @@ object Configurations { lazy val Pom = Configuration.of("Pom", "pom") lazy val ScalaTool = Configuration.of("ScalaTool", "scala-tool").hide + lazy val ScalaDocTool = Configuration.of("ScalaDocTool", "scala-doc-tool").hide lazy val CompilerPlugin = Configuration.of("CompilerPlugin", "plugin").hide lazy val Component = Configuration.of("Component", "component").hide diff --git a/core/src/main/scala/sbt/librarymanagement/ScalaArtifacts.scala b/core/src/main/scala/sbt/librarymanagement/ScalaArtifacts.scala index dc667a4c8..18eb70fbe 100644 --- a/core/src/main/scala/sbt/librarymanagement/ScalaArtifacts.scala +++ b/core/src/main/scala/sbt/librarymanagement/ScalaArtifacts.scala @@ -13,17 +13,20 @@ object ScalaArtifacts { final val Scala3CompilerID = "scala3-compiler" final val Scala3InterfacesID = "scala3-interfaces" final val TastyCoreID = "tasty-core" + final val Scala3DocID = "scala3doc" private[sbt] final val Scala3LibraryPrefix = Scala3LibraryID + "_" private[sbt] final val Scala3CompilerPrefix = Scala3CompilerID + "_" private[sbt] final val TastyCorePrefix = TastyCoreID + "_" + private[sbt] final val Scala3DocPrefix = Scala3DocID + "_" def isScala2Artifact(name: String): Boolean = { name == LibraryID || name == CompilerID || name == ReflectID || name == ActorsID || name == ScalapID } def isScala3Artifact(name: String): Boolean = { name.startsWith(Scala3LibraryPrefix) || name.startsWith(Scala3CompilerPrefix) || - name.startsWith(TastyCorePrefix) || name == Scala3InterfacesID + name.startsWith(TastyCorePrefix) || name == Scala3InterfacesID || + name.startsWith(Scala3DocPrefix) } def isScala3(scalaVersion: String): Boolean = scalaVersion.startsWith("3.") @@ -48,6 +51,18 @@ object ScalaArtifacts { ModuleID(org, LibraryID, version) } + private[sbt] def docToolDependencies( + org: String, + version: String + ): Seq[ModuleID] = + if (isScala3(version)) { + Seq( + ModuleID(org, Scala3DocID, version) + .withConfigurations(Some(Configurations.ScalaDocTool.name + "->default(compile)")) + .withCrossVersion(CrossVersion.binary) + ) + } else Seq.empty + private[sbt] def toolDependencies( org: String, version: String @@ -60,11 +75,11 @@ object ScalaArtifacts { ) else Seq( - scalaToolDependency(org, CompilerID, version), - scalaToolDependency(org, LibraryID, version) + scala2ToolDependency(org, CompilerID, version), + scala2ToolDependency(org, LibraryID, version) ) - private[this] def scalaToolDependency(org: String, id: String, version: String): ModuleID = + private[this] def scala2ToolDependency(org: String, id: String, version: String): ModuleID = ModuleID(org, id, version).withConfigurations( Some(Configurations.ScalaTool.name + "->default,optional(default)") )