diff options
Diffstat (limited to 'build.sbt')
-rw-r--r-- | build.sbt | 74 |
1 files changed, 29 insertions, 45 deletions
@@ -1,70 +1,55 @@ -import sbt._ -import sbt.Keys._ -import sbt.ScriptedPlugin._ +val scalaVersions = Seq("2.12.0", "2.11.8", "2.10.6") +val macrosParadiseVersion = "2.1.0" -import sbtdoge.CrossPerProjectPlugin - -import scalariform.formatter.preferences._ -import com.typesafe.sbt.SbtScalariform -import com.typesafe.sbt.SbtScalariform.ScalariformKeys - -val commonSettings = Seq( - organization := "ch.jodersky", - licenses := Seq(("BSD New", url("http://opensource.org/licenses/BSD-3-Clause"))), - scalacOptions ++= Seq("-deprecation", "-feature"), - resolvers += Resolver.sonatypeRepo("releases"), - ScalariformKeys.preferences := ScalariformKeys.preferences.value - .setPreference(DoubleIndentClassDeclaration, true) - .setPreference(DanglingCloseParenthesis, Preserve) - .setPreference(MultilineScaladocCommentsStartOnFirstLine, true) - .setPreference(PlaceScaladocAsterisksBeneathSecondAsterisk, true) +// version is derived from latest git tag +version in ThisBuild := ("git describe --always --dirty --match v[0-9].*" !!).tail.trim +organization in ThisBuild := "ch.jodersky" +scalacOptions in ThisBuild ++= Seq( + "-deprecation", + "-feature", + "-Xfatal-warnings", + "-Xlint" ) +licenses in ThisBuild := Seq(("BSD New", url("http://opensource.org/licenses/BSD-3-Clause"))) -lazy val root = Project( - id = "root", - base = file("."), - aggregate = Seq( - macros, plugin - ), - settings = commonSettings ++ Seq( +lazy val root = (project in file(".")) + .enablePlugins(CrossPerProjectPlugin) + .aggregate(macros, plugin) + .settings( publish := {}, publishLocal := {}, // make sbt-pgp happy - publishTo := Some(Resolver.file("Unused transient repository", target.value / "unusedrepo")) - ) ++ addCommandAlias("test-plugin", ";+sbt-jni-macros/publishLocal;scripted") -).enablePlugins(CrossPerProjectPlugin) + publishTo := Some(Resolver.file("Unused transient repository", target.value / "unusedrepo")), + addCommandAlias("test-plugin", ";+macros/publishLocal;scripted") + ) -lazy val macros = Project( - id = "sbt-jni-macros", - base = file("macros"), - settings = commonSettings ++ Seq( - scalaVersion := Version.scala.head, - crossScalaVersions := Version.scala, - addCompilerPlugin("org.scalamacros" % "paradise" % Version.macrosParadise cross CrossVersion.full), +lazy val macros = (project in file("macros")) + .settings( + name := "sbt-jni-macros", + scalaVersion := scalaVersions.head, + crossScalaVersions := scalaVersions, + addCompilerPlugin("org.scalamacros" % "paradise" % macrosParadiseVersion cross CrossVersion.full), libraryDependencies += "org.typelevel" %% "macro-compat" % "1.1.1", libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % Provided, libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value ) -) -lazy val plugin = Project( - id = "sbt-jni", - base = file("plugin"), - settings = commonSettings ++ scriptedSettings ++ Seq( +lazy val plugin = (project in file("plugin")) + .settings(scriptedSettings) + .settings( + name := "sbt-jni", sbtPlugin := true, publishMavenStyle := false, scalaVersion := "2.10.6", crossScalaVersions := Seq(scalaVersion.value), - libraryDependencies += "org.ow2.asm" % "asm" % "5.0.4", - // make project settings available to source sourceGenerators in Compile += Def.task { val src = s"""|/* Generated by sbt */ |package ch.jodersky.sbt.jni | |private[jni] object ProjectVersion { - | final val MacrosParadise = "${Version.macrosParadise}" + | final val MacrosParadise = "${macrosParadiseVersion}" | final val Macros = "${version.value}" |} |""".stripMargin @@ -77,4 +62,3 @@ lazy val plugin = Project( "-XX:MaxPermSize=256m", "-Xmx2g", "-Xss2m" ) ) -) |