-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathbuild.sbt
111 lines (103 loc) · 4.55 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
lazy val commonSettings = Seq(
name := "Princess",
organization := "uuverifiers",
version := "unstable",
homepage := Some(url("https://philipp.ruemmer.org/princess.shtml")),
licenses := Seq("BSD-3-Clause" -> url("https://opensource.org/licenses/BSD-3-Clause")),
scmInfo := Some(ScmInfo(
url("https://github.com/uuverifiers/princess"),
"scm:git@github.com/uuverifiers/princess.git")),
developers := List(
Developer(
id = "pruemmer",
name = "Philipp Ruemmer",
email = "ph_r@gmx.net",
url = url("https://philipp.ruemmer.org")
),
Developer(
id = "zafer.esen",
name = "Zafer Esen",
email = "zafer.esen@it.uu.se",
url = url("https://katalog.uu.se/empinfo/?id=N18-2424")
),
Developer(
id = "angelo.brillout",
name = "Angelo Brillout",
email = "angelo.brillout@gmail.com",
url = url("https://ch.linkedin.com/in/angelo-brillout-2942bb7")
),
Developer(
id = "peter.backeman",
name = "Peter Backeman",
email = "peter@backeman.se",
url = url("http://www.es.mdh.se/staff/4393-Peter__Backeman")
),
Developer(
id = "peter.baumgartner",
name = "Peter Baumgartner",
email = "Peter.Baumgartner@data61.csiro.au",
url = url("http://users.cecs.anu.edu.au/~baumgart/")
),
Developer(
id = "amanda.stjerna",
name = "Amanda Stjerna",
email = "mail@amandastjerna.se",
url = url("https://amandastjerna.se/")
)
),
description := "Princess is a theorem prover (aka SMT Solver) for Presburger arithmetic, uninterpreted predicates, and various other theories.",
scalaVersion := "2.11.12",
crossScalaVersions := Seq("2.11.12", "2.12.20"),
run / fork := true,
Global / cancelable := true,
publishTo := Some(Resolver.file("file", new File( "/tmp/shared-repo" )) )
)
////////////////////////////////////////////////////////////////////////////////
// Jar files for the parsers
lazy val parserSettings = Seq(
// packageDoc / publishArtifact := false,
// packageSrc / publishArtifact := false,
exportJars := true,
crossPaths := true
)
lazy val parser = (project in file("parser")).
settings(commonSettings: _*).
settings(parserSettings: _*).
settings(
name := "Princess-parser",
Compile / packageBin := baseDirectory.value / "parser.jar"
).
disablePlugins(AssemblyPlugin)
lazy val smtParser = (project in file("smt-parser")).
settings(commonSettings: _*).
settings(parserSettings: _*).
settings(
name := "Princess-smt-parser",
Compile / packageBin := baseDirectory.value / "smt-parser.jar"
).
disablePlugins(AssemblyPlugin)
// Actual project
lazy val root = (project in file(".")).
aggregate(parser, smtParser).
dependsOn(parser, smtParser).
settings(commonSettings: _*).
//
settings(
Compile / mainClass := Some("ap.CmdlMain"),
//
Compile / scalacOptions ++=
List("-feature",
"-language:implicitConversions,postfixOps,reflectiveCalls"),
scalacOptions += (scalaVersion map { sv => sv match {
case "2.11.12" => "-optimise"
case "2.12.20" => "-opt:_"
}}).value,
//
libraryDependencies +=
"org.scala-lang.modules" %% "scala-parser-combinators" % "2.2.0",
//
libraryDependencies +=
"net.sf.squirrel-sql.thirdparty-non-maven" % "java-cup" % "0.11a",
//
libraryDependencies +=
"org.scalacheck" %% "scalacheck" % "1.15.2" % Test)