Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove mill-scala-cli stuff from build #1433

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import $file.project.settings, settings.{
ScalaCliCrossSbtModule,
ScalaCliSbtModule,
ScalaCliScalafixModule,
ScalaCliCompile,
ScalaCliTests,
localRepoResourcePath,
platformExecutableJarExtension,
Expand Down Expand Up @@ -193,10 +192,9 @@ trait BuildMacros extends ScalaCliSbtModule
val cpsSource = base / "main" / "scala-3.1" / "scala" / "build" / "EitherCps.scala"
assert(os.exists(cpsSource))

val cli = compileScalaCli.get.path // we need scala-cli
val sv = scalaVersion()
val sv = scalaVersion()
def compile(extraSources: os.Path*) =
os.proc(cli, "compile", "-S", sv, cpsSource, extraSources).call(
os.proc("scala-cli", "compile", "-S", sv, cpsSource, extraSources).call(
check =
false,
mergeErrIntoOut = true
Expand Down Expand Up @@ -492,12 +490,12 @@ trait Options extends ScalaCliSbtModule with ScalaCliPublishModule with HasTests
}
}

trait ScalaParse extends SbtModule with ScalaCliPublishModule with ScalaCliCompile {
trait ScalaParse extends SbtModule with ScalaCliPublishModule {
def ivyDeps = super.ivyDeps() ++ Agg(Deps.scalaparse)
def scalaVersion = Scala.scala213
}

trait Scala3Runtime extends SbtModule with ScalaCliPublishModule with ScalaCliCompile {
trait Scala3Runtime extends SbtModule with ScalaCliPublishModule {
def ivyDeps = super.ivyDeps()
def scalaVersion = Scala.scala3
}
Expand Down Expand Up @@ -598,7 +596,15 @@ trait Build extends ScalaCliSbtModule with ScalaCliPublishModule with HasTests
}
}

trait CliOptions extends SbtModule with ScalaCliPublishModule with ScalaCliCompile {
trait CliOptions extends SbtModule with ScalaCliPublishModule {
def scalacOptions = T {
val sv = scalaVersion()
val isScala213 = sv.startsWith("2.13.")
val extraOptions =
if (isScala213) Seq("-Xsource:3")
else Nil
super.scalacOptions() ++ extraOptions
}
def ivyDeps = super.ivyDeps() ++ Agg(
Deps.caseApp,
Deps.jsoniterCore213,
Expand Down
70 changes: 10 additions & 60 deletions project/settings.sc
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import $ivy.`com.goyeau::mill-scalafix::0.2.8`
import $ivy.`io.github.alexarchambault.mill::mill-native-image::0.1.19`
import $ivy.`io.github.alexarchambault.mill::mill-scala-cli::0.1.0`

import $file.deps,
deps.{BuildDeps, Deps, Docker, alpineVersion, buildCsVersion, buildCsM1Version, libsodiumVersion}
Expand Down Expand Up @@ -529,7 +528,15 @@ trait CliLaunchers extends SbtModule { self =>
}

trait HasTests extends SbtModule {
trait Tests extends super.Tests with ScalaCliCompile {
def scalacOptions = T {
val sv = scalaVersion()
val isScala213 = sv.startsWith("2.13.")
val extraOptions =
if (isScala213) Seq("-Xsource:3")
else Nil
super.scalacOptions() ++ extraOptions
}
trait Tests extends super.Tests {
def ivyDeps = super.ivyDeps() ++ Agg(
Deps.expecty,
Deps.munit
Expand Down Expand Up @@ -791,64 +798,7 @@ trait FormatNativeImageConf extends JavaModule {
}
}

trait ScalaCliCompile extends scala.cli.mill.ScalaCliCompile {
def scalaCliVersion = BuildDeps.scalaCliVersion
def enableScalaCli = false

def scalacOptions = T {
val sv = scalaVersion()
val isScala213 = sv.startsWith("2.13.")
val extraOptions =
if (isScala213) Seq("-Xsource:3", "-Ytasty-reader")
else Nil
super.scalacOptions() ++ extraOptions
}

def mandatoryIvyDeps = T {
super.mandatoryIvyDeps().map { dep =>
val isScala3Lib =
dep.dep.module.organization.value == "org.scala-lang" &&
dep.dep.module.name.value == "scala3-library" &&
(dep.cross match {
case _: CrossVersion.Binary => true
case _ => false
})
if (isScala3Lib)
dep.copy(
dep = dep.dep.withModule(
dep.dep.module.withName(
coursier.ModuleName(dep.dep.module.name.value + "_3")
)
),
cross = CrossVersion.empty(dep.cross.platformed)
)
else dep
}
}
def transitiveIvyDeps = T {
super.transitiveIvyDeps().map { dep =>
val isScala3Lib =
dep.dep.module.organization.value == "org.scala-lang" &&
dep.dep.module.name.value == "scala3-library" &&
(dep.cross match {
case _: CrossVersion.Binary => true
case _ => false
})
if (isScala3Lib)
dep.copy(
dep = dep.dep.withModule(
dep.dep.module.withName(
coursier.ModuleName(dep.dep.module.name.value + "_3")
)
),
cross = CrossVersion.empty(dep.cross.platformed)
)
else dep
}
}
}

trait ScalaCliScalafixModule extends ScalafixModule with ScalaCliCompile {
trait ScalaCliScalafixModule extends ScalafixModule {
def scalafixConfig = T {
if (scalaVersion().startsWith("2.")) super.scalafixConfig()
else Some(os.pwd / ".scalafix3.conf")
Expand Down