2021-02-24 18:57:41 +03:00
|
|
|
val dottyVersion = "2.13.5"
|
2021-04-06 19:01:25 +03:00
|
|
|
|
2021-04-29 14:16:25 +03:00
|
|
|
//val dottyVersion = "3.0.0-RC3"
|
2021-04-06 19:01:25 +03:00
|
|
|
|
2021-04-29 14:16:25 +03:00
|
|
|
scalaVersion := dottyVersion
|
2021-02-17 16:30:45 +03:00
|
|
|
|
2021-04-14 14:15:27 +03:00
|
|
|
val baseAquaVersion = settingKey[String]("base aqua version")
|
2021-04-06 19:01:25 +03:00
|
|
|
|
2021-04-29 14:16:25 +03:00
|
|
|
val catsV = "2.6.0"
|
2021-05-14 11:36:49 +03:00
|
|
|
val catsParseV = "0.3.3"
|
2021-04-29 14:16:25 +03:00
|
|
|
val monocleV = "3.0.0-M5"
|
|
|
|
val scalaTestV = "3.2.7" // TODO update version for scala 3-RC3
|
|
|
|
val fs2V = "3.0.2"
|
|
|
|
val catsEffectV = "3.1.0"
|
|
|
|
val declineV = "2.0.0-RC1" // Scala3 issue: https://github.com/bkirwi/decline/issues/260
|
2021-04-06 19:01:25 +03:00
|
|
|
|
2021-04-08 15:53:54 +03:00
|
|
|
name := "aqua-hll"
|
2021-04-06 19:01:25 +03:00
|
|
|
|
|
|
|
val commons = Seq(
|
2021-04-20 16:44:06 +03:00
|
|
|
baseAquaVersion := "0.1.1",
|
2021-04-14 14:15:27 +03:00
|
|
|
version := baseAquaVersion.value + "-" + sys.env.getOrElse("BUILD_NUMBER", "SNAPSHOT"),
|
2021-04-06 19:01:25 +03:00
|
|
|
scalaVersion := dottyVersion,
|
|
|
|
libraryDependencies += "org.scalatest" %% "scalatest" % scalaTestV % Test,
|
|
|
|
addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.11.3" cross CrossVersion.full)
|
|
|
|
)
|
|
|
|
|
2021-04-13 16:02:36 +03:00
|
|
|
commons
|
|
|
|
|
2021-04-06 19:01:25 +03:00
|
|
|
lazy val cli = project
|
|
|
|
.settings(commons: _*)
|
|
|
|
.settings(
|
2021-04-22 16:42:08 +03:00
|
|
|
Compile / run / mainClass := Some("aqua.AquaCli"),
|
|
|
|
assembly / mainClass := Some("aqua.AquaCli"),
|
|
|
|
assembly / assemblyJarName := "aqua-cli-" + version.value + ".jar",
|
2021-04-06 19:01:25 +03:00
|
|
|
libraryDependencies ++= Seq(
|
2021-04-13 16:05:31 +03:00
|
|
|
"com.monovore" %% "decline" % declineV,
|
|
|
|
"com.monovore" %% "decline-effect" % declineV,
|
|
|
|
"org.typelevel" %% "cats-effect" % catsEffectV,
|
|
|
|
"co.fs2" %% "fs2-core" % fs2V,
|
|
|
|
"co.fs2" %% "fs2-io" % fs2V
|
2021-04-06 19:01:25 +03:00
|
|
|
)
|
|
|
|
)
|
2021-04-13 16:05:31 +03:00
|
|
|
.dependsOn(semantics, `backend-air`, `backend-ts`, linker)
|
2021-04-06 19:01:25 +03:00
|
|
|
|
|
|
|
lazy val types = project
|
|
|
|
.settings(commons)
|
|
|
|
.settings(
|
|
|
|
libraryDependencies ++= Seq(
|
|
|
|
"org.typelevel" %% "cats-core" % catsV
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
lazy val parser = project
|
|
|
|
.settings(commons: _*)
|
|
|
|
.settings(
|
|
|
|
libraryDependencies ++= Seq(
|
|
|
|
"org.typelevel" %% "cats-parse" % catsParseV,
|
|
|
|
"org.typelevel" %% "cats-free" % catsV
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.dependsOn(types)
|
2021-02-01 16:17:46 +03:00
|
|
|
|
2021-04-13 16:05:31 +03:00
|
|
|
lazy val linker = project
|
|
|
|
.settings(commons: _*)
|
|
|
|
.settings(
|
|
|
|
)
|
|
|
|
.dependsOn(parser)
|
|
|
|
|
2021-04-06 19:01:25 +03:00
|
|
|
lazy val model = project
|
|
|
|
.settings(commons: _*)
|
|
|
|
.settings(
|
|
|
|
libraryDependencies ++= Seq(
|
|
|
|
"org.typelevel" %% "cats-free" % catsV
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.dependsOn(types)
|
|
|
|
|
|
|
|
lazy val semantics = project
|
|
|
|
.settings(commons: _*)
|
2021-02-01 16:17:46 +03:00
|
|
|
.settings(
|
|
|
|
libraryDependencies ++= Seq(
|
2021-03-15 11:45:27 +03:00
|
|
|
"com.github.julien-truffaut" %% "monocle-core" % monocleV,
|
2021-04-06 19:01:25 +03:00
|
|
|
"com.github.julien-truffaut" %% "monocle-macro" % monocleV
|
2021-03-19 12:40:27 +03:00
|
|
|
)
|
2021-02-01 16:17:46 +03:00
|
|
|
)
|
2021-04-06 19:01:25 +03:00
|
|
|
.dependsOn(model, parser)
|
|
|
|
|
|
|
|
lazy val `backend-air` = project
|
|
|
|
.in(file("backend/air"))
|
|
|
|
.settings(commons: _*)
|
|
|
|
.dependsOn(model)
|
2021-03-02 19:46:27 +03:00
|
|
|
|
2021-04-06 19:01:25 +03:00
|
|
|
lazy val `backend-ts` = project
|
|
|
|
.in(file("backend/ts"))
|
|
|
|
.settings(commons: _*)
|
|
|
|
.dependsOn(`backend-air`)
|