aboutsummaryrefslogtreecommitdiff
path: root/build.sbt
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2016-11-30 22:39:08 -0800
committerJakob Odersky <jakob@odersky.com>2016-11-30 22:39:08 -0800
commitbbf3b0364a8a62cd2c5feb20728e0f7f0bd3f776 (patch)
treeada7f289374821cdb772c0e5bb73ae0bfd9fb7b1 /build.sbt
parentdade71d25634056a83a461d826d284f4b5258d3f (diff)
downloadsbt-jni-bbf3b0364a8a62cd2c5feb20728e0f7f0bd3f776.tar.gz
sbt-jni-bbf3b0364a8a62cd2c5feb20728e0f7f0bd3f776.tar.bz2
sbt-jni-bbf3b0364a8a62cd2c5feb20728e0f7f0bd3f776.zip
Simplify build and derive version from git
Diffstat (limited to 'build.sbt')
-rw-r--r--build.sbt74
1 files changed, 29 insertions, 45 deletions
diff --git a/build.sbt b/build.sbt
index 2b1271f..30fed7c 100644
--- a/build.sbt
+++ b/build.sbt
@@ -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"
)
)
-)