-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.sbt
37 lines (32 loc) · 1.77 KB
/
build.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Scala.meta macros are available for two most recent minor versions of Scala.
// At the time of writing, that's 2.11.11 and 2.12.2.
scalaVersion in ThisBuild := "2.11.11"
lazy val metaMacroSettings: Seq[Def.Setting[_]] = Seq(
// New-style macro annotations are under active development. As a result, in
// this build we'll be referring to snapshot versions of both scala.meta and
// macro paradise.
resolvers += Resolver.sonatypeRepo("releases"),
resolvers += Resolver.bintrayRepo("scalameta", "maven"),
// A dependency on macro paradise 3.x is required to both write and expand
// new-style macros. This is similar to how it works for old-style macro
// annotations and a dependency on macro paradise 2.x.
addCompilerPlugin("org.scalameta" % "paradise" % "3.0.0-M8" cross CrossVersion.full),
scalacOptions += "-Xplugin-require:macroparadise",
// temporary workaround for https://github.com/scalameta/paradise/issues/10
scalacOptions in (Compile, console) := Seq(), // macroparadise plugin doesn't work in repl yet.
// temporary workaround for https://github.com/scalameta/paradise/issues/55
sources in (Compile, doc) := Nil // macroparadise doesn't work with scaladoc yet.
)
// Define macros in this project.
lazy val macros = project.settings(
metaMacroSettings,
// A dependency on scala.meta is required to write new-style macros, but not
// to expand such macros. This is similar to how it works for old-style
// macros and a dependency on scala.reflect.
libraryDependencies ++=
"org.scalameta" %% "scalameta" % "1.7.0" ::
"com.typesafe.scala-logging" %% "scala-logging" % "3.5.0" ::
"ch.qos.logback" % "logback-classic" % "1.1.7" :: Nil
)
// Use macros in this project.
lazy val app = project.settings(metaMacroSettings).dependsOn(macros)