sbt/build.sbt

133 lines
4.6 KiB
Plaintext
Raw Normal View History

2015-08-19 09:56:08 +02:00
import Dependencies._
2017-06-14 07:56:08 +02:00
import Path._
//import com.typesafe.tools.mima.core._, ProblemFilters._
2015-08-19 09:56:08 +02:00
2017-06-28 08:27:41 +02:00
def baseVersion = "1.0.0-SNAPSHOT"
2015-08-19 09:56:08 +02:00
def commonSettings: Seq[Setting[_]] = Seq(
2017-01-07 06:43:52 +01:00
scalaVersion := scala212,
2015-08-19 09:56:08 +02:00
// publishArtifact in packageDoc := false,
resolvers += Resolver.typesafeIvyRepo("releases"),
resolvers += Resolver.sonatypeRepo("snapshots"),
2016-10-07 20:36:32 +02:00
resolvers += "bintray-sbt-maven-releases" at "https://dl.bintray.com/sbt/maven-releases/",
2015-08-19 09:56:08 +02:00
// concurrentRestrictions in Global += Util.testExclusiveRestriction,
testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-w", "1"),
2017-01-07 06:43:52 +01:00
javacOptions in compile ++= Seq("-Xlint", "-Xlint:-serial"),
crossScalaVersions := Seq(scala211, scala212),
2015-09-07 10:40:23 +02:00
resolvers += Resolver.sonatypeRepo("public"),
2017-06-14 07:56:08 +02:00
scalacOptions := {
val old = scalacOptions.value
scalaVersion.value match {
case sv if sv.startsWith("2.10") =>
old diff List("-Xfuture", "-Ywarn-unused", "-Ywarn-unused-import")
2017-06-14 07:56:08 +02:00
case sv if sv.startsWith("2.11") => old ++ List("-Ywarn-unused", "-Ywarn-unused-import")
case _ => old ++ List("-Ywarn-unused", "-Ywarn-unused-import", "-YdisableFlatCpCaching")
}
},
publishArtifact in Compile := true,
publishArtifact in Test := false,
2017-06-14 07:56:08 +02:00
parallelExecution in Test := false
2015-08-19 09:56:08 +02:00
)
2017-07-20 18:13:35 +02:00
val mimaSettings = Def settings (
2017-08-26 19:42:11 +02:00
mimaPreviousArtifacts := Set(organization.value %% moduleName.value % "1.0.0")
2017-07-20 18:13:35 +02:00
)
2017-04-26 22:55:38 +02:00
lazy val lmRoot = (project in file("."))
.aggregate(lmCore, lmIvy)
2017-04-26 22:55:38 +02:00
.settings(
inThisBuild(
Seq(
homepage := Some(url("https://github.com/sbt/librarymanagement")),
description := "Library management module for sbt",
scmInfo := {
val slug = "sbt/librarymanagement"
Some(ScmInfo(url(s"https://github.com/$slug"), s"git@github.com:$slug.git"))
},
2017-04-26 22:55:38 +02:00
bintrayPackage := "librarymanagement",
scalafmtOnCompile := true,
2017-08-14 16:29:06 +02:00
scalafmtVersion := "1.2.0",
2017-06-28 08:27:41 +02:00
git.baseVersion := baseVersion,
version := {
val v = version.value
if (v contains "SNAPSHOT") git.baseVersion.value
else v
}
2017-04-26 22:55:38 +02:00
)),
2015-08-19 09:56:08 +02:00
commonSettings,
name := "LM Root",
2015-08-19 09:56:08 +02:00
publish := {},
2015-09-02 09:25:37 +02:00
publishLocal := {},
2015-09-07 10:40:23 +02:00
publishArtifact in Compile := false,
2016-05-10 06:34:40 +02:00
publishArtifact := false,
customCommands
2015-08-19 09:56:08 +02:00
)
lazy val lmCore = (project in file("core"))
.enablePlugins(ContrabandPlugin, JsonCodecPlugin)
2017-04-26 22:55:38 +02:00
.settings(
2015-08-19 09:56:08 +02:00
commonSettings,
name := "librarymanagement-core",
libraryDependencies ++= Seq(
jsch,
scalaReflect.value,
scalaCompiler.value,
launcherInterface,
gigahorseOkhttp,
okhttpUrlconnection,
sjsonnewScalaJson.value % Optional,
scalaTest,
scalaCheck
),
libraryDependencies ++= scalaXml.value,
resourceGenerators in Compile += Def
.task(
Util.generateVersionFile(
version.value,
resourceManaged.value,
streams.value,
(compile in Compile).value
)
2017-06-21 14:47:35 +02:00
)
.taskValue,
managedSourceDirectories in Compile +=
baseDirectory.value / "src" / "main" / "contraband-scala",
sourceManaged in (Compile, generateContrabands) := baseDirectory.value / "src" / "main" / "contraband-scala",
contrabandFormatsForType in generateContrabands in Compile := DatatypeConfig.getFormats,
2016-12-14 11:26:53 +01:00
// WORKAROUND sbt/sbt#2205 include managed sources in packageSrc
mappings in (Compile, packageSrc) ++= {
val srcs = (managedSources in Compile).value
val sdirs = (managedSourceDirectories in Compile).value
val base = baseDirectory.value
(((srcs --- sdirs --- base) pair (relativeTo(sdirs) | relativeTo(base) | flat)) toSeq)
2017-07-20 18:13:35 +02:00
},
mimaSettings,
2017-04-26 22:55:38 +02:00
)
.configure(addSbtIO, addSbtUtilLogging, addSbtUtilPosition, addSbtUtilCache)
lazy val lmIvy = (project in file("ivy"))
2017-04-26 22:55:38 +02:00
.enablePlugins(ContrabandPlugin, JsonCodecPlugin)
.dependsOn(lmCore)
.settings(
commonSettings,
name := "librarymanagement-ivy",
libraryDependencies ++= Seq(ivy, scalaTest, scalaCheck),
managedSourceDirectories in Compile +=
baseDirectory.value / "src" / "main" / "contraband-scala",
sourceManaged in (Compile, generateContrabands) := baseDirectory.value / "src" / "main" / "contraband-scala",
contrabandFormatsForType in generateContrabands in Compile := DatatypeConfig.getFormats,
scalacOptions in (Compile, console) --=
Vector("-Ywarn-unused-import", "-Ywarn-unused", "-Xlint"),
2017-07-20 18:13:35 +02:00
mimaSettings,
)
2016-05-10 06:34:40 +02:00
def customCommands: Seq[Setting[_]] = Seq(
commands += Command.command("release") { state =>
// "clean" ::
2017-07-06 15:05:04 +02:00
"+compile" ::
"+publishSigned" ::
2017-04-26 22:55:38 +02:00
"reload" ::
state
2016-05-10 06:34:40 +02:00
}
)