typelevel / scalac-options   0.1.4

Apache License 2.0 GitHub

A library for configuring scalac options

Scala versions: 3.x 2.13 2.12
Scala.js versions: 1.x


Continuous Integration License Discord Maven Central

scalac-options is a library containing logic for configuring Scala compiler options according to the current Scala compiler version.

This logic was originally developed in the sbt-tpolecat sbt plugin, and this library is intended to enable the reuse of that logic in other build tool plugins, for example sbt-typelevel and mill-tpolecat.


This library is published for Scala 2.12.x, 2.13.x and 3.1.x:

// sbt
"org.typelevel" %% "scalac-options" % "0.1.3"

// mill

// Scala CLI
//> using lib "org.typelevel::scalac-options:0.1.3"

This library offers functions for filtering proposed Scala compiler options according to Scala version:

scalacOptions := ScalacOptions.tokensForVersion(
  ScalaVersion.V3_1_0, // the Scala compiler major, minor, patch version
  ScalacOptions.default // a curated default option set
) // returns a Seq[String] of Scala compiler options

) // returns a Set[ScalacOption]

A shorthand for using the default option set is also provided:

scalacOptions := ScalacOptions.defaultTokensForVersion(
) // returns a Seq[String] of Scala compiler options based on the default option set

) // returns a Set[ScalacOption] based on the default option set


Participants are expected to follow the Scala Code of Conduct while discussing the project on GitHub and any other venues associated with the project. See the organizational Code of Conduct for more details.


All code in this repository is licensed under the Apache License, Version 2.0. See LICENSE.