From bbf3b0364a8a62cd2c5feb20728e0f7f0bd3f776 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Wed, 30 Nov 2016 22:39:08 -0800 Subject: Simplify build and derive version from git --- README.md | 2 +- build.sbt | 74 ++++++++++++++++++++------------------------------- project/Version.scala | 4 --- project/plugins.sbt | 3 --- version.sbt | 1 - 5 files changed, 30 insertions(+), 54 deletions(-) delete mode 100644 project/Version.scala delete mode 100644 version.sbt diff --git a/README.md b/README.md index c908b04..411cb89 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The second point, portability, is inherent to JNI and thus unavoidable. However All plugins are made available with the following sbt configuration ```scala -addSbtPlugin("ch.jodersky" % "sbt-jni" % "1.2.4") +addSbtPlugin("ch.jodersky" % "sbt-jni" % "") ``` in `project/plugins.sbt`. 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" ) ) -) diff --git a/project/Version.scala b/project/Version.scala deleted file mode 100644 index bc96fa1..0000000 --- a/project/Version.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Version { - val scala: Seq[String] = List("2.11.8", "2.10.6", "2.12.0") - val macrosParadise = "2.1.0" -} \ No newline at end of file diff --git a/project/plugins.sbt b/project/plugins.sbt index 19a16f4..d57d693 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -3,6 +3,3 @@ addSbtPlugin("com.eed3si9n" % "sbt-doge" % "0.1.5") // testing for sbt plugins libraryDependencies += "org.scala-sbt" % "scripted-plugin" % sbtVersion.value - -// formatting -addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.6.0") diff --git a/version.sbt b/version.sbt deleted file mode 100644 index 1d60a2c..0000000 --- a/version.sbt +++ /dev/null @@ -1 +0,0 @@ -version in ThisBuild := "1.2.5-SNAPSHOT" -- cgit v1.2.3