Manage Scala 3 instances

This commit is contained in:
Adrien Piquerez 2020-12-16 16:07:54 +01:00
parent 1b0c251a69
commit c9478529e6
2 changed files with 20 additions and 15 deletions

View File

@ -1034,21 +1034,22 @@ object Defaults extends BuildCommon {
} }
def scalaInstanceFromUpdate: Initialize[Task[ScalaInstance]] = Def.task { def scalaInstanceFromUpdate: Initialize[Task[ScalaInstance]] = Def.task {
val sv = scalaVersion.value
val toolReport = update.value.configuration(Configurations.ScalaTool) getOrElse val toolReport = update.value.configuration(Configurations.ScalaTool) getOrElse
sys.error(noToolConfiguration(managedScalaInstance.value)) sys.error(noToolConfiguration(managedScalaInstance.value))
def files(id: String) = def files(id: String) =
for { for {
m <- toolReport.modules if m.module.name == id; m <- toolReport.modules if m.module.name.startsWith(id)
(art, file) <- m.artifacts if art.`type` == Artifact.DefaultType (art, file) <- m.artifacts if art.`type` == Artifact.DefaultType
} yield file } yield file
def file(id: String) = files(id).headOption getOrElse sys.error(s"Missing ${id}.jar") def file(id: String) = files(id).headOption getOrElse sys.error(s"Missing $id jar file")
val allJars = toolReport.modules.flatMap(_.artifacts.map(_._2)) val allJars = toolReport.modules.flatMap(_.artifacts.map(_._2))
val libraryJar = file(ScalaArtifacts.LibraryID) val libraryJars = ScalaArtifacts.libraryIds(sv).map(file)
val compilerJar = file(ScalaArtifacts.CompilerID) val compilerJar = file(ScalaArtifacts.compilerId(sv))
mkScalaInstance( mkScalaInstance(
scalaVersion.value, sv,
allJars, allJars,
Array(libraryJar), libraryJars,
compilerJar, compilerJar,
state.value.extendedClassLoaderCache, state.value.extendedClassLoaderCache,
scalaInstanceTopLoader.value, scalaInstanceTopLoader.value,
@ -3820,7 +3821,7 @@ object Classpaths {
version: String version: String
): Seq[ModuleID] = ): Seq[ModuleID] =
if (auto) if (auto)
modifyForPlugin(plugin, ModuleID(org, ScalaArtifacts.LibraryID, version)) :: Nil modifyForPlugin(plugin, ScalaArtifacts.libraryDependency(org, version)) :: Nil
else else
Nil Nil

View File

@ -173,6 +173,7 @@ object LMCoursier {
} }
def coursierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task { def coursierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task {
val sv = scalaVersion.value
coursierConfiguration( coursierConfiguration(
csrRecursiveResolvers.value, csrRecursiveResolvers.value,
csrInterProjectDependencies.value.toVector, csrInterProjectDependencies.value.toVector,
@ -182,9 +183,9 @@ object LMCoursier {
None, None,
csrMavenProfiles.value, csrMavenProfiles.value,
scalaOrganization.value, scalaOrganization.value,
scalaVersion.value, sv,
scalaBinaryVersion.value, scalaBinaryVersion.value,
autoScalaLibrary.value, autoScalaLibrary.value && !ScalaArtifacts.isScala3(sv),
scalaModuleInfo.value, scalaModuleInfo.value,
allExcludeDependencies.value, allExcludeDependencies.value,
CoursierInputsTasks.credentialsTask.value, CoursierInputsTasks.credentialsTask.value,
@ -200,6 +201,7 @@ object LMCoursier {
} }
def updateClassifierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task { def updateClassifierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task {
val sv = scalaVersion.value
coursierConfiguration( coursierConfiguration(
csrRecursiveResolvers.value, csrRecursiveResolvers.value,
csrInterProjectDependencies.value.toVector, csrInterProjectDependencies.value.toVector,
@ -209,9 +211,9 @@ object LMCoursier {
Some(transitiveClassifiers.value.map(Classifier(_))), Some(transitiveClassifiers.value.map(Classifier(_))),
csrMavenProfiles.value, csrMavenProfiles.value,
scalaOrganization.value, scalaOrganization.value,
scalaVersion.value, sv,
scalaBinaryVersion.value, scalaBinaryVersion.value,
autoScalaLibrary.value, autoScalaLibrary.value && !ScalaArtifacts.isScala3(sv),
scalaModuleInfo.value, scalaModuleInfo.value,
allExcludeDependencies.value, allExcludeDependencies.value,
CoursierInputsTasks.credentialsTask.value, CoursierInputsTasks.credentialsTask.value,
@ -227,6 +229,7 @@ object LMCoursier {
} }
def updateSbtClassifierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task { def updateSbtClassifierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task {
val sv = scalaVersion.value
coursierConfiguration( coursierConfiguration(
csrSbtResolvers.value, csrSbtResolvers.value,
Vector(), Vector(),
@ -236,9 +239,9 @@ object LMCoursier {
None, None,
csrMavenProfiles.value, csrMavenProfiles.value,
scalaOrganization.value, scalaOrganization.value,
scalaVersion.value, sv,
scalaBinaryVersion.value, scalaBinaryVersion.value,
autoScalaLibrary.value, autoScalaLibrary.value && !ScalaArtifacts.isScala3(sv),
scalaModuleInfo.value, scalaModuleInfo.value,
allExcludeDependencies.value, allExcludeDependencies.value,
CoursierInputsTasks.credentialsTask.value, CoursierInputsTasks.credentialsTask.value,
@ -254,6 +257,7 @@ object LMCoursier {
} }
def scalaCompilerBridgeConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task { def scalaCompilerBridgeConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task {
val sv = scalaVersion.value
coursierConfiguration( coursierConfiguration(
csrResolvers.value, csrResolvers.value,
Vector(), Vector(),
@ -263,9 +267,9 @@ object LMCoursier {
None, None,
csrMavenProfiles.value, csrMavenProfiles.value,
scalaOrganization.value, scalaOrganization.value,
scalaVersion.value, sv,
scalaBinaryVersion.value, scalaBinaryVersion.value,
autoScalaLibrary.value, autoScalaLibrary.value && !ScalaArtifacts.isScala3(sv),
scalaModuleInfo.value, scalaModuleInfo.value,
allExcludeDependencies.value, allExcludeDependencies.value,
CoursierInputsTasks.credentialsTask.value, CoursierInputsTasks.credentialsTask.value,