forked from scala-graph/scala-graph
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sbt
115 lines (106 loc) · 3.58 KB
/
build.sbt
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import sbt._
import Keys._
lazy val all = project
.in(file("."))
.settings(
Seq(
name := "Graph for Scala",
version := Version.highest,
publishTo := None
)
)
.aggregate(core, constrained, dot, json)
lazy val core = project
.in(file("core"))
.settings(
defaultSettings ++ Seq(
name := "Graph Core",
version := Version.core,
libraryDependencies ++= Seq(
"org.scalacheck" %% "scalacheck" % "1.13.4" % "optional;provided",
"org.gephi" % "gephi-toolkit" % "0.9.2" % "test" classifier "all",
),
dependencyOverrides ++= {
val release = "RELEASE90"
def netbeansModule(module: String) = "org.netbeans.modules" % module % release
def netbeansApi(module: String) = "org.netbeans.api" % module % release
Seq(
netbeansModule("org-netbeans-core"),
netbeansModule("org-netbeans-core-startup-base"),
netbeansModule("org-netbeans-modules-masterfs"),
netbeansApi("org-openide-util-lookup"),
netbeansApi("org-openide-filesystems"),
netbeansApi("org-openide-util-ui"),
netbeansApi("org-openide-dialogs"),
netbeansApi("org-openide-nodes"),
netbeansApi("org-netbeans-api-annotations-common")
)
}
)
)
lazy val constrained = project
.in(file("constrained"))
.dependsOn(core % "compile->compile;test->test")
.settings(
defaultSettings ++ Seq(
name := "Graph Constrained",
version := Version.constrained
)
)
lazy val dot = project
.in(file("dot"))
.dependsOn(core)
.settings(
defaultSettings ++ Seq(name := "Graph DOT", version := Version.dot)
)
lazy val json = project
.in(file("json"))
.dependsOn(core)
.settings(
defaultSettings ++ Seq(
name := "Graph JSON",
version := Version.json,
libraryDependencies += "net.liftweb" %% "lift-json" % "3.1.1"
)
)
lazy val misc = project
.in(file("misc"))
.dependsOn(core)
.settings(
defaultSettings ++ Seq(
name := "Graph Miscellaneous",
version := Version.misc
)
)
ThisBuild / resolvers ++= Seq(
"NetBeans" at "http://bits.netbeans.org/nexus/content/groups/netbeans/",
"gephi-thirdparty" at "https://raw.github.com/gephi/gephi/mvn-thirdparty-repo/"
)
ThisBuild / scalafmtConfig := Some(file(".scalafmt.conf"))
val unusedImports = "-Ywarn-unused:imports"
lazy val defaultSettings = Defaults.coreDefaultSettings ++ Seq(
scalaVersion := Version.compiler_2_12,
crossScalaVersions := Seq(scalaVersion.value, Version.compiler_2_11),
organization := "org.scala-graph",
scalacOptions ++= Seq(
unusedImports,
"-Yrangepos",
"-Ywarn-unused:privates"
),
Compile / console / scalacOptions := (Compile / scalacOptions).value filterNot (_ eq unusedImports),
addCompilerPlugin(scalafixSemanticdb),
Test / parallelExecution := false,
Compile / doc / scalacOptions ++=
Opts.doc.title(name.value) ++
Opts.doc.version(version.value),
// prevents sbteclipse from including java source directories
Compile / unmanagedSourceDirectories := (Compile / scalaSource)(Seq(_)).value,
Test / unmanagedSourceDirectories := (Test / scalaSource)(Seq(_)).value,
Compile / doc / scalacOptions ++= List("-diagrams", "-implicits"),
Compile / doc / scalacOptions ++= (baseDirectory map { d =>
Seq("-doc-root-content", (d / "rootdoc.txt").getPath)
}).value,
autoAPIMappings := true,
Test / testOptions := Seq(Tests.Filter(s => s.endsWith("Test"))),
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % "test"
) ++ GraphSonatype.settings