@@ -39,6 +39,7 @@ import mill._
3939import mill .api .Loose
4040import scalalib .{publish => _ , _ }
4141import mill .contrib .bloop .Bloop
42+ import mill .define .Task .Simple
4243import mill .testrunner .TestResult
4344
4445import _root_ .scala .util .{Properties , Using }
@@ -109,15 +110,6 @@ object `test-runner` extends Cross[TestRunner](Scala.runnerScalaVersions)
109110 with CrossScalaDefaultToRunner
110111object `tasty-lib` extends Cross [TastyLib ](Scala .scala3MainVersions)
111112 with CrossScalaDefaultToInternal
112- // Runtime classes used within native image on Scala 3 replacing runtime from Scala
113- object `scala3-runtime` extends Cross [Scala3Runtime ](Scala .scala3MainVersions)
114- with CrossScalaDefaultToInternal
115- // Logic to process classes that is shared between build and the scala-cli itself
116- object `scala3-graal` extends Cross [Scala3Graal ](Scala .scala3MainVersions)
117- with CrossScalaDefaultToInternal
118- // Main app used to process classpath within build itself
119- object `scala3-graal-processor` extends Cross [Scala3GraalProcessor ](Scala .scala3MainVersions)
120- with CrossScalaDefaultToInternal
121113
122114object `scala-cli-bsp` extends JavaModule with ScalaCliPublishModule {
123115 override def ivyDeps : T [Agg [Dep ]] = super .ivyDeps() ++ Seq (
@@ -685,38 +677,6 @@ trait Options extends ScalaCliCrossSbtModule with ScalaCliPublishModule with Has
685677 }
686678}
687679
688- trait Scala3Runtime extends CrossSbtModule with ScalaCliPublishModule {
689- override def crossScalaVersion : String = crossValue
690- override def ivyDeps : T [Agg [Dep ]] = super .ivyDeps()
691- }
692-
693- trait Scala3Graal extends ScalaCliCrossSbtModule
694- with ScalaCliPublishModule with ScalaCliScalafixModule {
695- override def crossScalaVersion : String = crossValue
696- override def ivyDeps : T [Agg [Dep ]] = super .ivyDeps() ++ Agg (
697- Deps .asm,
698- Deps .osLib
699- )
700-
701- override def resources : T [Seq [PathRef ]] = Task .Sources {
702- val extraResourceDir = Task .dest / " extra"
703- // scala3RuntimeFixes.jar is also used within
704- // resource-config.json and BytecodeProcessor.scala
705- os.copy.over(
706- `scala3-runtime`(crossScalaVersion).jar().path,
707- extraResourceDir / " scala3RuntimeFixes.jar" ,
708- createFolders = true
709- )
710- super .resources() ++ Seq (mill.PathRef (extraResourceDir))
711- }
712- }
713-
714- trait Scala3GraalProcessor extends CrossScalaModule with ScalaCliPublishModule {
715- override def moduleDeps : Seq [SonatypeCentralPublishModule ] =
716- Seq (`scala3-graal`(crossScalaVersion))
717- override def finalMainClass : T [String ] = " scala.cli.graal.CoursierCacheProcessor"
718- }
719-
720680trait Build extends ScalaCliCrossSbtModule
721681 with ScalaCliPublishModule
722682 with HasTests
@@ -926,7 +886,6 @@ trait Cli extends CrossSbtModule with ProtoBuildModule with CliLaunchers
926886 def moduleDeps : Seq [SonatypeCentralPublishModule ] = Seq (
927887 `build-module`(crossScalaVersion),
928888 config(crossScalaVersion),
929- `scala3-graal`(crossScalaVersion),
930889 `specification-level`(crossScalaVersion)
931890 )
932891
@@ -948,21 +907,31 @@ trait Cli extends CrossSbtModule with ProtoBuildModule with CliLaunchers
948907 Deps .signingCli.exclude((organization, " config_2.13" )),
949908 Deps .slf4jNop, // to silence jgit
950909 Deps .sttp,
951- Deps .scalafixInterfaces
910+ Deps .scalafixInterfaces,
911+ Deps .scala3Graal, // TODO: drop this if we ever bump internal JDK to 24+
912+ Deps .scala3GraalProcessor // TODO: drop this if we ever bump internal JDK to 24+
952913 )
953914 override def compileIvyDeps : T [Agg [Dep ]] = super .compileIvyDeps() ++ Agg (
954915 Deps .jsoniterMacros,
955916 Deps .svm
956917 )
957918 override def mainClass : T [Option [String ]] = Some (" scala.cli.ScalaCli" )
958919
920+ private def scala3GraalProcessorClassPath : T [Agg [PathRef ]] = T {
921+ resolveDeps(T {
922+ val bind = bindDependency()
923+ Agg (Deps .scala3GraalProcessor).map(bind)
924+ })()
925+ }
926+
959927 override def nativeImageClassPath : T [Seq [PathRef ]] = Task {
960928 val classpath = super .nativeImageClassPath().map(_.path).mkString(File .pathSeparator)
961929 val cache = Task .dest / " native-cp"
962- // `scala3-graal-processor`.run() do not give me output and I cannot pass dynamically computed values like classpath
930+ // `scala3-graal-processor`.run() does not give me output and I cannot pass dynamically computed values like classpath
931+ // TODO: drop this if we ever bump internal JDK to 24+
963932 val res = mill.util.Jvm .callProcess(
964- mainClass = `scala3- graal-processor`(crossScalaVersion).finalMainClass() ,
965- classPath = `scala3-graal-processor`(crossScalaVersion).runClasspath(). map(_.path),
933+ mainClass = " scala.cli. graal.CoursierCacheProcessor " ,
934+ classPath = scala3GraalProcessorClassPath(). map(_.path).toList ,
966935 mainArgs = Seq (cache.toNIO.toString, classpath)
967936 )
968937 val cp = res.out.trim()
0 commit comments