@@ -46,17 +46,26 @@ object ScalaModulePlugin extends AutoPlugin {
46
46
)
47
47
48
48
/**
49
- * Enable `-opt:l:inline`, `-opt:l:project` or `-optimize`, depending on the scala version.
49
+ * Enable `-opt:l:inline`, `-opt:l:project` or `-optimize`, depending on the Scala version.
50
+ *
51
+ * Note that the optimizer is only enabled in CI and not during local development.
52
+ * Thus, for consistent results, release artifacts must only be built on CI --
53
+ * which is the expected norm for Scala modules, anyway.
50
54
*/
51
55
lazy val enableOptimizer : Setting [_] = Compile / compile / scalacOptions ++= {
52
- val Ver = """ (\d+)\.(\d+)\.(\d+).*""" .r
53
- val Ver (epic, maj, min) = scalaVersion.value
54
- (epic, maj.toInt, min.toInt) match {
55
- case (" 2" , m, _) if m < 12 => Seq (" -optimize" )
56
- case (" 2" , 12 , n) if n < 3 => Seq (" -opt:l:project" )
57
- case (" 2" , _, _) => Seq (" -opt:l:inline" , " -opt-inline-from:" + scalaModuleEnableOptimizerInlineFrom.value)
58
- case (" 3" , _, _) => Nil // Optimizer not yet available for Scala3, see https://docs.scala-lang.org/overviews/compiler-options/optimizer.html
59
- }
56
+ if (insideCI.value) {
57
+ val log = sLog.value
58
+ val inlineFrom = scalaModuleEnableOptimizerInlineFrom.value
59
+ log.info(s " Running in CI, enabling Scala2 optimizer for module: ${name.value} with -opt-inline-from: $inlineFrom" )
60
+ val Ver = """ (\d+)\.(\d+)\.(\d+).*""" .r
61
+ val Ver (epic, maj, min) = scalaVersion.value
62
+ (epic, maj.toInt, min.toInt) match {
63
+ case (" 2" , m, _) if m < 12 => Seq (" -optimize" )
64
+ case (" 2" , 12 , n) if n < 3 => Seq (" -opt:l:project" )
65
+ case (" 2" , _, _) => Seq (" -opt:l:inline" , " -opt-inline-from:" + inlineFrom)
66
+ case (" 3" , _, _) => Nil // Optimizer not yet available for Scala3, see https://docs.scala-lang.org/overviews/compiler-options/optimizer.html
67
+ }
68
+ } else Nil
60
69
}
61
70
62
71
/**
0 commit comments