forked from circe/circe
/
Build.scala
94 lines (76 loc) · 2.33 KB
/
Build.scala
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import sbt._
import sbt.Keys._
import org.typelevel.sbt.Developer
import org.typelevel.sbt.TypelevelPlugin._
object JawnBuild extends Build {
lazy val standardSettings = Seq(
organization := "org.spire-math",
scalaVersion := "2.11.6",
crossScalaVersions := Seq("2.10.5", "2.11.6"),
homepage := Some(url("http://github.com/non/jawn/")),
scalacOptions ++= Seq(
"-Yinline-warnings",
"-deprecation",
"-optimize",
"-unchecked"
),
licenses += ("MIT", url("http://opensource.org/licenses/MIT")),
resolvers += Resolver.sonatypeRepo("releases")
) ++ typelevelDefaultSettings ++ Seq(
TypelevelKeys.signArtifacts := true,
TypelevelKeys.githubDevs += Developer("Erik Osheim", "non"),
TypelevelKeys.githubProject := ("non", "jawn")
)
lazy val noPublish = Seq(
publish := (),
publishLocal := (),
publishArtifact := false
)
lazy val testDeps = Seq(
"org.scalatest" %% "scalatest" % "2.2.4" % "test",
"org.scalacheck" %% "scalacheck" % "1.12.2" % "test"
)
lazy val parser = Project(
id = "parser",
base = file("parser"),
settings = standardSettings ++ Seq(
libraryDependencies ++= testDeps
)
)
lazy val ast = Project(
id = "ast",
base = file("ast"),
settings = standardSettings ++ Seq(
libraryDependencies ++= testDeps
),
dependencies = Seq(parser)
)
def support(name: String) = Project(
id = name,
base = file(s"support/$name"),
settings = standardSettings ++ Seq(
libraryDependencies ++= testDeps
),
dependencies = Seq(parser)
)
lazy val supportArgonaut = support("argonaut")
lazy val supportJson4s = support("json4s")
lazy val supportPlay = support("play")
lazy val supportRojoma = support("rojoma")
lazy val supportRojomaV3 = support("rojoma-v3")
lazy val supportSpray = support("spray")
lazy val all =
Seq(parser, ast, supportArgonaut, supportJson4s, supportPlay, supportRojoma, supportRojomaV3, supportSpray)
lazy val benchmark = Project(
id = "benchmark",
base = file("benchmark"),
settings = standardSettings ++ noPublish,
dependencies = all.map(Project.classpathDependency[Project])
)
lazy val root = Project(
id = "jawn",
base = file("."),
settings = standardSettings ++ noPublish,
aggregate = all.map(Project.projectToRef)
)
}