@@ -39,18 +39,19 @@ implicit def millModuleBasePath: define.BasePath =
39
39
40
40
object cli extends Cli
41
41
42
- object `cli-options` extends CliOptions
43
- object `build-macros` extends BuildMacros
44
- object config extends Cross [Config ](Scala .all: _* )
45
- object options extends Options
46
- object scalaparse extends ScalaParse
47
- object directives extends Directives
48
- object core extends Core
49
- object `build-module` extends Build
50
- object runner extends Cross [Runner ](Scala .runnerScalaVersions: _* )
51
- object `test-runner` extends Cross [TestRunner ](Scala .runnerScalaVersions: _* )
52
- object `bloop-rifle` extends Cross [BloopRifle ](Scala .all: _* )
53
- object `tasty-lib` extends Cross [TastyLib ](Scala .all: _* )
42
+ object `specification-level` extends SpecificationLevel
43
+ object `cli-options` extends CliOptions
44
+ object `build-macros` extends BuildMacros
45
+ object config extends Cross [Config ](Scala .all: _* )
46
+ object options extends Options
47
+ object scalaparse extends ScalaParse
48
+ object directives extends Directives
49
+ object core extends Core
50
+ object `build-module` extends Build
51
+ object runner extends Cross [Runner ](Scala .runnerScalaVersions: _* )
52
+ object `test-runner` extends Cross [TestRunner ](Scala .runnerScalaVersions: _* )
53
+ object `bloop-rifle` extends Cross [BloopRifle ](Scala .all: _* )
54
+ object `tasty-lib` extends Cross [TastyLib ](Scala .all: _* )
54
55
// Runtime classes used within native image on Scala 3 replacing runtime from Scala
55
56
object `scala3-runtime` extends Scala3Runtime
56
57
// Logic to process classes that is shared between build and the scala-cli itself
@@ -416,7 +417,7 @@ trait Directives extends ScalaCliSbtModule with ScalaCliPublishModule with HasTe
416
417
options,
417
418
core,
418
419
`build-macros`,
419
- `cli-options `
420
+ `specification-level `
420
421
)
421
422
def scalacOptions = T {
422
423
super .scalacOptions() ++ asyncScalacOptions(scalaVersion())
@@ -639,6 +640,18 @@ trait Build extends ScalaCliSbtModule with ScalaCliPublishModule with HasTests
639
640
}
640
641
}
641
642
643
+ trait SpecificationLevel extends SbtModule with ScalaCliPublishModule {
644
+ def scalacOptions = T {
645
+ val sv = scalaVersion()
646
+ val isScala213 = sv.startsWith(" 2.13." )
647
+ val extraOptions =
648
+ if (isScala213) Seq (" -Xsource:3" )
649
+ else Nil
650
+ super .scalacOptions() ++ extraOptions
651
+ }
652
+ def scalaVersion = Scala .defaultInternal
653
+ }
654
+
642
655
trait CliOptions extends SbtModule with ScalaCliPublishModule {
643
656
def scalacOptions = T {
644
657
val sv = scalaVersion()
@@ -648,6 +661,9 @@ trait CliOptions extends SbtModule with ScalaCliPublishModule {
648
661
else Nil
649
662
super .scalacOptions() ++ extraOptions
650
663
}
664
+ def moduleDeps = Seq (
665
+ `specification-level`
666
+ )
651
667
def ivyDeps = super .ivyDeps() ++ Agg (
652
668
Deps .caseApp,
653
669
Deps .jsoniterCore213,
@@ -751,6 +767,7 @@ trait Cli extends SbtModule with ProtoBuildModule with CliLaunchers
751
767
}
752
768
def moduleDeps = Seq (
753
769
`build-module`,
770
+ `cli-options`,
754
771
config(Scala .scala3),
755
772
`scala3-graal`(Scala .scala3)
756
773
)
0 commit comments