@@ -14,39 +14,56 @@ object ScalaSettingPlugin extends AutoPlugin {
14
14
organization := " io.buildo" ,
15
15
)
16
16
17
- def crossFlags (scalaVersion : String ): Seq [String ] =
17
+ val baseScalaOptions = Seq (
18
+ " -encoding" ,
19
+ " utf8" ,
20
+ " -feature" ,
21
+ " -deprecation" ,
22
+ " -language:higherKinds" ,
23
+ " -language:implicitConversions" ,
24
+ )
25
+
26
+ val baseScala2Options = baseScalaOptions ++ Seq (
27
+ " -unchecked" ,
28
+ " -Xlint" ,
29
+ " -Ywarn-dead-code" ,
30
+ " -Ywarn-numeric-widen" ,
31
+ " -Ywarn-value-discard" ,
32
+ " -Ywarn-unused" ,
33
+ " -Yrangepos" ,
34
+ )
35
+
36
+ val baseScala3Options = baseScalaOptions ++ Seq (
37
+ " -Ykind-projector" ,
38
+ )
39
+
40
+ def crossScalacOptions (scalaVersion : String ): Seq [String ] =
18
41
CrossVersion .partialVersion(scalaVersion) match {
19
42
case Some ((2 , 12 )) =>
20
- Seq (" -opt-warnings" , " -Ypartial-unification" , " -Xfuture" , " -Ywarn-unused-import" )
21
- case Some ((2 , 13 )) => Seq (" -Ymacro-annotations" , " -Ywarn-unused:imports" )
43
+ baseScala2Options ++
44
+ Seq (" -opt-warnings" , " -Ypartial-unification" , " -Xfuture" , " -Ywarn-unused-import" )
45
+ case Some ((2 , 13 )) => baseScala2Options ++ Seq (" -Ymacro-annotations" , " -Ywarn-unused:imports" )
46
+ case Some ((3 , _)) => baseScala3Options
22
47
case _ => Nil
23
48
}
24
49
25
50
lazy val baseSettings : Seq [Def .Setting [_]] = Seq (
26
51
cancelable in Global := true ,
27
- scalacOptions ++= Seq (
28
- " -encoding" ,
29
- " utf8" ,
30
- " -deprecation" ,
31
- " -feature" ,
32
- " -unchecked" ,
33
- " -Xlint" ,
34
- " -language:higherKinds" ,
35
- " -language:implicitConversions" ,
36
- " -Ywarn-dead-code" ,
37
- " -Ywarn-numeric-widen" ,
38
- " -Ywarn-value-discard" ,
39
- " -Ywarn-unused" ,
40
- " -Yrangepos" ,
41
- ) ++ crossFlags(scalaVersion.value),
52
+ scalacOptions ++= crossScalacOptions(scalaVersion.value),
42
53
resolvers += Resolver .jcenterRepo,
43
54
libraryDependencies ++= {
44
55
CrossVersion .partialVersion(scalaVersion.value) match {
45
- case Some ((2 , n)) if n >= 13 => Nil
46
- case _ =>
56
+ case Some ((2 , n)) if n < 13 =>
47
57
compilerPlugin((" org.scalamacros" % " paradise" % " 2.1.1" ).cross(CrossVersion .full)) :: Nil
58
+ case _ => Nil
59
+ }
60
+ },
61
+ libraryDependencies ++= {
62
+ CrossVersion .partialVersion(scalaVersion.value) match {
63
+ case Some ((2 , _)) =>
64
+ compilerPlugin((" org.typelevel" % " kind-projector" % " 0.11.3" ).cross(CrossVersion .full)) :: Nil
65
+ case _ => Nil
48
66
}
49
67
},
50
- addCompilerPlugin((" org.typelevel" % " kind-projector" % " 0.11.3" ).cross(CrossVersion .full)),
51
68
)
52
69
}
0 commit comments