build.sbt 2.5 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,
18 19 20
      "org.apache.logging.log4j" % "log4j-api" % "2.14.1" % Test,
      "org.apache.logging.log4j" % "log4j-core" % "2.14.1" % Test,
      "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.14.1" % Test,
梦境迷离's avatar
梦境迷离 已提交
21
      "com.typesafe.play" %% "play-json" % "2.7.4" % Test,
S
Scala Steward 已提交
22
      "org.scalatest" %% "scalatest" % "3.2.9" % Test
梦境迷离's avatar
梦境迷离 已提交
23 24 25
    ), Compile / scalacOptions ++= {
      CrossVersion.partialVersion(scalaVersion.value) match {
        case Some((2, n)) if n <= 12 => Nil
梦境迷离's avatar
pre  
梦境迷离 已提交
26
        case _ => List("-Ymacro-annotations" /*, "-Ymacro-debug-verbose"*/)
梦境迷离's avatar
梦境迷离 已提交
27
      }
梦境迷离's avatar
pre  
梦境迷离 已提交
28
    },
梦境迷离's avatar
梦境迷离 已提交
29
    Test / testOptions += Tests.Argument("-oDF"),
梦境迷离's avatar
pre  
梦境迷离 已提交
30
    releaseIgnoreUntrackedFiles := true,
梦境迷离's avatar
pre  
梦境迷离 已提交
31
    releaseCrossBuild := true,
梦境迷离's avatar
pre  
梦境迷离 已提交
32 33 34 35
    releaseProcess := Seq[ReleaseStep](
      checkSnapshotDependencies,
      inquireVersions,
      runClean,
梦境迷离's avatar
梦境迷离 已提交
36 37
      releaseStepCommandAndRemaining("+compile"),
      releaseStepCommandAndRemaining("test"),
梦境迷离's avatar
pre  
梦境迷离 已提交
38 39 40
      setReleaseVersion,
      commitReleaseVersion,
      tagRelease,
梦境迷离's avatar
梦境迷离 已提交
41
      releaseStepCommandAndRemaining("+publishSigned"),
梦境迷离's avatar
pre  
梦境迷离 已提交
42 43 44 45
      setNextVersion,
      commitNextVersion,
      pushChanges
    )
梦境迷离's avatar
梦境迷离 已提交
46
  ).settings(Publishing.publishSettings)
梦境迷离's avatar
梦境迷离 已提交
47 48 49 50 51


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
梦境迷离 已提交
52 53 54 55
  )).settings(
  publish / skip := true,
  Compile / scalacOptions += "-Ymacro-annotations"
)
梦境迷离's avatar
梦境迷离 已提交
56 57 58 59 60

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
梦境迷离 已提交
61
  publish / skip := true,
梦境迷离's avatar
梦境迷离 已提交
62 63 64 65
  paradise
)

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