aboutsummaryrefslogtreecommitdiff
path: root/stage2/plugins/Macroparadise.scala
blob: 2b05c92a0ccbfa0e05a5dc6e3ae5a36f469e9586 (plain) (blame)
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
package cbt
import java.io.File

trait Macroparadise extends BaseBuild{
  def macroParadiseVersion = "3.0.0-M9"

  override def scalacOptions = super.scalacOptions ++ Macroparadise.scalacOptions(
    Macroparadise.dependencies( scalaVersion, macroParadiseVersion, context.cbtLastModified, context.paths.mavenCache ).jar
  )
}

object Macroparadise{
  def dependencies(
    scalaVersion: String, macroParadiseVersion: String, cbtLastModified: Long, mavenCache: java.io.File
  )(
    implicit logger: Logger, transientCache: java.util.Map[AnyRef,AnyRef], classLoaderCache: ClassLoaderCache
  ) =
    MavenResolver( cbtLastModified, mavenCache, mavenCentral ).bindOne(
      MavenDependency(
        "org.scalameta", "paradise_"+scalaVersion, macroParadiseVersion
      )
    )

  def scalacOptions( jarPath: File ) =
    Seq(
      "-Xplugin:" ++ jarPath.string,
      "-Yrangepos",
      "-Xplugin-require:macroparadise"
    )
}