name := "ocelot-desktop" version := "1.13.1" scalaVersion := "2.13.10" lazy val root = project.in(file(".")) .dependsOn(brain % "compile->compile") .aggregate(brain) .enablePlugins(BuildInfoPlugin) .settings( buildInfoKeys := Seq[BuildInfoKey]( BuildInfoKey.action("commit") { scala.sys.process.Process("git rev-parse HEAD").!!.trim }, version ) ) // Ensure Java 8 compatibility javacOptions ++= Seq("-source", "1.8", "-target", "1.8") initialize := { val _ = initialize.value val required = "1.8" val current = sys.props("java.specification.version") assert(current == required, s"Incompatible JDK: java.specification.version $current != $required") } lazy val brain = ProjectRef(file("lib/ocelot-brain"), "ocelot-brain") libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % "test" libraryDependencies += "org.scalatest" %% "scalatest-funsuite" % "3.2.19" % "test" libraryDependencies += "org.apache.logging.log4j" % "log4j-core" % "2.20.0" libraryDependencies += "org.apache.logging.log4j" % "log4j-api" % "2.20.0" libraryDependencies += "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.20.0" val lwjglVersion = "2.9.3" libraryDependencies += "org.lwjgl.lwjgl" % "lwjgl" % lwjglVersion libraryDependencies += "org.lwjgl.lwjgl" % "lwjgl-platform" % lwjglVersion classifier "natives-linux" libraryDependencies += "org.lwjgl.lwjgl" % "lwjgl-platform" % lwjglVersion classifier "natives-windows" libraryDependencies += "org.lwjgl.lwjgl" % "lwjgl-platform" % lwjglVersion classifier "natives-osx" Compile / unmanagedResourceDirectories += baseDirectory.value / "lib" / "native" libraryDependencies += "com.github.stephengold" % "j-ogg-all" % "1.0.3" libraryDependencies += "com.github.wendykierp" % "JTransforms" % "3.1" libraryDependencies += "com.github.sarxos" % "webcam-capture" % "0.3.12" // For OpenFM libraryDependencies += "com.googlecode.soundlibs" % "mp3spi" % "1.9.5.4" libraryDependencies += "com.googlecode.soundlibs" % "vorbisspi" % "1.0.3.3" assembly / assemblyMergeStrategy := { case PathList("META-INF", "MANIFEST.MF") => MergeStrategy.discard case _ => MergeStrategy.first } assembly / assemblyJarName := "ocelot-desktop.jar"