build.sbt 2.3 KB
Newer Older
梦境迷离's avatar
pre  
梦境迷离 已提交
1 2
import sbtrelease.ReleaseStateTransformations._

梦境迷离's avatar
梦境迷离 已提交
3 4 5 6 7 8 9 10 11
name := "scala-macro-tools"
scalaVersion := "2.13.6"
organization := "io.github.jxnu-liguobin"

lazy val scala212 = "2.12.13"
lazy val scala211 = "2.11.12"
lazy val scala213 = "2.13.6"
lazy val supportedScalaVersions = List(scala213, scala212, scala211)

梦境迷离's avatar
pre  
梦境迷离 已提交
12
lazy val root = (project in file("."))
梦境迷离's avatar
梦境迷离 已提交
13 14 15 16 17
  .settings(
    crossScalaVersions := supportedScalaVersions,
    libraryDependencies ++= Seq(
      "org.scala-lang" % "scala-compiler" % scalaVersion.value,
      "org.scala-lang" % "scala-reflect" % scalaVersion.value,
梦境迷离's avatar
梦境迷离 已提交
18
      "com.typesafe.play" %% "play-json" % "2.7.4" % Test,
梦境迷离's avatar
梦境迷离 已提交
19 20 21 22
      "org.scalatest" %% "scalatest" % "3.0.9" % Test
    ), Compile / scalacOptions ++= {
      CrossVersion.partialVersion(scalaVersion.value) match {
        case Some((2, n)) if n <= 12 => Nil
梦境迷离's avatar
pre  
梦境迷离 已提交
23
        case _ => List("-Ymacro-annotations" /*, "-Ymacro-debug-verbose"*/)
梦境迷离's avatar
梦境迷离 已提交
24
      }
梦境迷离's avatar
pre  
梦境迷离 已提交
25
    },
梦境迷离's avatar
梦境迷离 已提交
26
    Test / testOptions += Tests.Argument("-oDF"),
梦境迷离's avatar
pre  
梦境迷离 已提交
27
    releaseIgnoreUntrackedFiles := true,
梦境迷离's avatar
pre  
梦境迷离 已提交
28
    releaseCrossBuild := true,
梦境迷离's avatar
pre  
梦境迷离 已提交
29 30 31 32
    releaseProcess := Seq[ReleaseStep](
      checkSnapshotDependencies,
      inquireVersions,
      runClean,
梦境迷离's avatar
梦境迷离 已提交
33 34
      releaseStepCommandAndRemaining("+compile"),
      releaseStepCommandAndRemaining("test"),
梦境迷离's avatar
pre  
梦境迷离 已提交
35 36 37
      setReleaseVersion,
      commitReleaseVersion,
      tagRelease,
梦境迷离's avatar
梦境迷离 已提交
38
      releaseStepCommandAndRemaining("+publishSigned"),
梦境迷离's avatar
pre  
梦境迷离 已提交
39 40 41 42
      setNextVersion,
      commitNextVersion,
      pushChanges
    )
梦境迷离's avatar
梦境迷离 已提交
43
  ).settings(Publishing.publishSettings)
梦境迷离's avatar
梦境迷离 已提交
44 45 46 47 48


lazy val `examples213` = (project in file("examples213")).settings(scalaVersion := scala213)
  .settings(libraryDependencies ++= Seq(
    "io.github.jxnu-liguobin" %% "scala-macro-tools" % (version in ThisBuild).value,
梦境迷离's avatar
梦境迷离 已提交
49 50 51 52
  )).settings(
  publish / skip := true,
  Compile / scalacOptions += "-Ymacro-annotations"
)
梦境迷离's avatar
梦境迷离 已提交
53 54 55 56 57

lazy val `examples212` = (project in file("examples212")).settings(scalaVersion := scala212)
  .settings(libraryDependencies ++= Seq(
    "io.github.jxnu-liguobin" %% "scala-macro-tools" % (version in ThisBuild).value,
  )).settings(
梦境迷离's avatar
梦境迷离 已提交
58
  publish / skip := true,
梦境迷离's avatar
梦境迷离 已提交
59 60 61 62
  paradise
)

val paradise = {
梦境迷离's avatar
梦境迷离 已提交
63
  libraryDependencies ++= (CrossVersion.partialVersion(scalaVersion.value) match {
梦境迷离's avatar
梦境迷离 已提交
64
    case Some((2, n)) if n < 13 => Some("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.full)
梦境迷离's avatar
梦境迷离 已提交
65
    case _ => None
梦境迷离's avatar
梦境迷离 已提交
66
  }).fold(Seq.empty[ModuleID])(f => Seq(compilerPlugin(f)))
梦境迷离's avatar
梦境迷离 已提交
67
}