aboutsummaryrefslogtreecommitdiff
path: root/stage2/plugins
diff options
context:
space:
mode:
authormegri <teknocide@gmail.com>2017-06-12 23:55:20 +0200
committerMartin Egri <meg@speedledger.se>2017-06-13 14:12:50 +0200
commit7d8d01dfb5dc934dc57f08d9e24be38c67270ea3 (patch)
treee0e768daf8ef1d0f3d7fabfd13937f8f5183eea3 /stage2/plugins
parentace672254b31d7e6203b0c5a22f1c4e6dfe13f42 (diff)
downloadcbt-7d8d01dfb5dc934dc57f08d9e24be38c67270ea3.tar.gz
cbt-7d8d01dfb5dc934dc57f08d9e24be38c67270ea3.tar.bz2
cbt-7d8d01dfb5dc934dc57f08d9e24be38c67270ea3.zip
Rudimentary Macroparadise plugin, example and test
Diffstat (limited to 'stage2/plugins')
-rw-r--r--stage2/plugins/Macroparadise.scala31
1 files changed, 31 insertions, 0 deletions
diff --git a/stage2/plugins/Macroparadise.scala b/stage2/plugins/Macroparadise.scala
new file mode 100644
index 0000000..2b05c92
--- /dev/null
+++ b/stage2/plugins/Macroparadise.scala
@@ -0,0 +1,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"
+ )
+}
+