frank/build.sbt

61 lines
1.7 KiB
Plaintext
Raw Normal View History

2019-10-10 20:50:26 +03:00
import SbtCommons._
2019-10-10 22:44:23 +03:00
import ch.jodersky.sbt.jni.plugins.JniPackage.autoImport._
2019-10-10 20:50:26 +03:00
name := "frank"
commons
/* Projects */
2019-10-10 23:02:39 +03:00
lazy val `vm-rust` = (project in file("src/main/rust/"))
2019-10-10 20:50:26 +03:00
.settings(
compileFrankVMSettings()
)
2019-10-10 23:02:39 +03:00
lazy val `vm-llamadb` = (project in file("src/it/resources/llamadb"))
2019-10-10 20:50:26 +03:00
.settings(
downloadLlamadb()
)
2019-10-10 23:02:39 +03:00
lazy val `vm-scala` = (project in file("."))
2019-10-10 20:50:26 +03:00
.configs(IntegrationTest)
.settings(inConfig(IntegrationTest)(Defaults.itSettings): _*)
.settings(
commons,
libraryDependencies ++= Seq(
cats,
catsEffect,
ficus,
scalaTest,
scalaIntegrationTest,
2019-10-10 22:44:23 +03:00
scodecCore,
2019-10-10 20:50:26 +03:00
mockito
),
2019-10-10 22:44:23 +03:00
enableNativeCompilation := false,
resourceGenerators in Compile += Def.task {
val managedResource = s"${(resourceManaged in Compile).value}/native"
2019-10-10 23:02:39 +03:00
val darwin_lib = new File(managedResource + "/x86_64-darwin/libfrank.dylib")
2019-10-10 22:44:23 +03:00
val linux_lib = new File(managedResource + "/linux_x86_64/libfrank.so")
IO.copyFile(
2019-10-10 23:02:39 +03:00
new File(s"${file("").getAbsolutePath}/src/main/rust/target/release/libfrank.dylib"),
2019-10-10 22:44:23 +03:00
darwin_lib
)
IO.copyFile(
2019-10-10 23:02:39 +03:00
new File(s"${file("").getAbsolutePath}/src/main/rust/target/x86_64-unknown-linux-gnu/release/libfrank.so"),
2019-10-10 22:44:23 +03:00
linux_lib
)
Seq(darwin_lib, linux_lib)
}.taskValue,
2019-10-10 20:50:26 +03:00
assemblyJarName in assembly := "frank.jar",
assemblyMergeStrategy in assembly := SbtCommons.mergeStrategy.value,
test in assembly := {},
compile in Compile := (compile in Compile)
.dependsOn(compile in `vm-rust`).value,
test in IntegrationTest := (test in IntegrationTest)
.dependsOn(compile in `vm-llamadb`)
.value
)
.enablePlugins(AutomateHeaderPlugin)