aqua/build.sbt

142 lines
3.3 KiB
Plaintext
Raw Normal View History

2021-08-06 10:33:58 +00:00
val dottyVersion = "3.0.1"
scalaVersion := dottyVersion
2021-02-17 13:30:45 +00:00
2021-04-14 11:15:27 +00:00
val baseAquaVersion = settingKey[String]("base aqua version")
val catsV = "2.6.1"
val catsParseV = "0.3.4"
2021-08-06 10:33:58 +00:00
val monocleV = "3.0.0-M6"
val scalaTestV = "3.2.9"
2021-08-06 10:33:58 +00:00
val fs2V = "3.0.6"
val catsEffectV = "3.2.1"
2021-05-24 08:00:45 +00:00
val airframeLogV = "21.5.4"
val log4catsV = "2.1.1"
val slf4jV = "1.7.30"
2021-08-06 10:33:58 +00:00
val declineV = "2.1.0"
val airframeLog = "org.wvlet.airframe" %% "airframe-log" % airframeLogV
2021-06-29 13:31:20 +00:00
val catsEffect = "org.typelevel" %% "cats-effect" % catsEffectV
val fs2Io = "co.fs2" %% "fs2-io" % fs2V
val catsFree = "org.typelevel" %% "cats-free" % catsV
val cats = "org.typelevel" %% "cats-core" % catsV
2021-04-08 12:53:54 +00:00
name := "aqua-hll"
val commons = Seq(
baseAquaVersion := "0.1.13",
2021-05-24 08:00:45 +00:00
version := baseAquaVersion.value + "-" + sys.env.getOrElse("BUILD_NUMBER", "SNAPSHOT"),
scalaVersion := dottyVersion,
libraryDependencies ++= Seq(
"org.typelevel" %% "log4cats-core" % log4catsV,
airframeLog,
"org.scalatest" %% "scalatest" % scalaTestV % Test
2021-05-24 08:00:45 +00:00
),
2021-08-06 10:33:58 +00:00
scalacOptions ++= {
Seq(
"-encoding",
"UTF-8",
"-feature",
"-language:implicitConversions",
"-unchecked",
"-Ykind-projector"
// "-Xfatal-warnings"
)
}
)
commons
lazy val cli = project
.settings(commons: _*)
.settings(
2021-04-22 13:42:08 +00:00
Compile / run / mainClass := Some("aqua.AquaCli"),
assembly / mainClass := Some("aqua.AquaCli"),
assembly / assemblyJarName := "aqua-cli-" + version.value + ".jar",
libraryDependencies ++= Seq(
2021-06-29 13:31:20 +00:00
"com.monovore" %% "decline" % declineV,
"com.monovore" %% "decline-effect" % declineV,
catsEffect,
fs2Io,
2021-08-06 10:33:58 +00:00
"org.typelevel" %% "log4cats-slf4j" % log4catsV,
"org.slf4j" % "slf4j-jdk14" % slf4jV
)
)
2021-06-29 13:31:20 +00:00
.dependsOn(compiler, `backend-air`, `backend-ts`, `backend-js`)
lazy val types = project
.settings(commons)
.settings(
libraryDependencies ++= Seq(
cats
)
)
lazy val parser = project
.settings(commons: _*)
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %% "cats-parse" % catsParseV,
catsFree
)
)
.dependsOn(types)
2021-02-01 13:17:46 +00:00
lazy val linker = project
.settings(commons: _*)
.settings(
2021-05-24 08:00:45 +00:00
libraryDependencies ++= Seq(
airframeLog
2021-05-24 08:00:45 +00:00
)
)
.dependsOn(parser)
lazy val model = project
.settings(commons: _*)
.settings(
libraryDependencies ++= Seq(
catsFree
)
)
.dependsOn(types)
2021-06-18 14:01:31 +00:00
lazy val `test-kit` = project
2021-06-25 07:25:27 +00:00
.in(file("model/test-kit"))
2021-06-18 14:01:31 +00:00
.settings(commons: _*)
.dependsOn(model)
lazy val semantics = project
.settings(commons: _*)
2021-02-01 13:17:46 +00:00
.settings(
libraryDependencies ++= Seq(
2021-03-15 08:45:27 +00:00
"com.github.julien-truffaut" %% "monocle-core" % monocleV,
"com.github.julien-truffaut" %% "monocle-macro" % monocleV
2021-03-19 09:40:27 +00:00
)
2021-02-01 13:17:46 +00:00
)
2021-06-18 14:01:31 +00:00
.dependsOn(model, `test-kit` % Test, parser)
2021-06-29 13:31:20 +00:00
lazy val compiler = project
.in(file("compiler"))
.settings(commons: _*)
.dependsOn(semantics, linker, backend)
2021-06-29 13:31:20 +00:00
2021-06-25 07:25:27 +00:00
lazy val backend = project
.in(file("backend"))
.settings(commons: _*)
.dependsOn(model)
lazy val `backend-air` = project
.in(file("backend/air"))
.settings(commons: _*)
2021-06-25 07:25:27 +00:00
.dependsOn(backend)
2021-03-02 16:46:27 +00:00
lazy val `backend-ts` = project
.in(file("backend/ts"))
.settings(commons: _*)
.dependsOn(`backend-air`)
lazy val `backend-js` = project
.in(file("backend/js"))
.settings(commons: _*)
.dependsOn(`backend-air`)