aboutsummaryrefslogtreecommitdiff
path: root/build.sbt
blob: 9f99ddb386e45ed04974dba85f3c8288a5c083cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// shadow sbt-scalajs' crossProject and CrossType until Scala.js 1.0.0 is released
import sbtcrossproject.{crossProject, CrossType}

lazy val sprayJsonDerivation =
  crossProject(JVMPlatform, JSPlatform, NativePlatform)
    .crossType(CrossType.Full)
    .in(file("."))
    .settings(
      name := "spray-json-derivation",
      version in ThisBuild := {
        import sys.process._
        ("git describe --always --dirty=-SNAPSHOT --match v[0-9].*" !!).tail.trim
      },
      scalaVersion := crossScalaVersions.value.head,
      scalacOptions ++= Seq(
        "-feature",
        "-deprecation",
        "-Xlint",
        "-Xfatal-warnings"
      ),
      libraryDependencies ++= Seq(
        "io.crashbox" %%% "spray-json" % "1.3.4-1",
        "com.propensive" %%% "magnolia" % "0.7.1"
      )
    )
    .platformsSettings(JVMPlatform, JSPlatform)(
      libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.3" % "test"
    )
    .jvmSettings(
      mimaPreviousArtifacts := Set(
        "xyz.driver" %% "spray-json-derivation" % "0.3.1"),
      crossScalaVersions := "2.12.4" :: "2.11.12" :: Nil
    )
    .jsSettings(
      crossScalaVersions := "2.12.4" :: "2.11.12" :: Nil
    )
    .nativeSettings(
      crossScalaVersions := "2.11.12" :: Nil,
      sources in (Compile, doc) := Seq.empty,
      unmanagedSourceDirectories in Test := Seq.empty
    )

lazy val sprayJsonDerivationJVM = sprayJsonDerivation.jvm
lazy val sprayJsonDerivationJS = sprayJsonDerivation.js
lazy val sprayJsonDerivationNative = sprayJsonDerivation.native

lazy val root = (project in file("."))
  .aggregate(sprayJsonDerivationJVM,
             sprayJsonDerivationJS,
             sprayJsonDerivationNative)
  .settings(
    publish := {},
    publishLocal := {}
  )