// Name of the project name := "ScalaFX Hello World" // Project version version := "14-R19" // Version of Scala used by the project scalaVersion := "2.13.3" // Add dependency on ScalaFX library libraryDependencies += "org.scalafx" %% "scalafx" % "14-R19" resolvers += Resolver.sonatypeRepo("snapshots") enablePlugins(JavaFxPlugin) libraryDependencies ++= Seq( "org.typelevel" %% "cats-core" % "2.1.1", "org.typelevel" %% "cats-effect" % "2.1.4", "io.monix" %% "monix" % "3.2.2", "io.monix" %% "monix-bio" % "1.0.0", "io.circe" %% "circe-core" % "0.13.0", "io.circe" %% "circe-generic" % "0.13.0", "com.softwaremill.sttp.client" %% "core" % "2.2.5", "com.softwaremill.sttp.client" %% "monix" % "2.2.5", "com.softwaremill.sttp.client" %% "circe" % "2.2.5", "com.softwaremill.sttp.client" %% "async-http-client-backend-monix" % "2.2.5", "com.github.valskalla" %% "odin-monix" % "0.8.1", "com.typesafe.akka" %% "akka-actor-typed" % "2.6.8", "com.softwaremill.macwire" %% "util" % "2.3.7", "com.softwaremill.macwire" %% "macros" % "2.3.6" % "provided", "com.softwaremill.macwire" %% "macrosakka" % "2.3.6" % "provided", "com.github.valskalla" %% "odin-slf4j" % "0.8.1" ) scalacOptions ++= Seq( "-unchecked", "-deprecation", "-Xcheckinit", "-encoding", "utf8", "-feature", "-Ywarn-unused:imports" ) // Fork a new JVM for 'run' and 'test:run', to avoid JavaFX double initialization problems fork := true // Determine OS version of JavaFX binaries lazy val osName = System.getProperty("os.name") match { case n if n.startsWith("Linux") => "linux" case n if n.startsWith("Mac") => "mac" case n if n.startsWith("Windows") => "win" case _ => throw new Exception("Unknown platform!") } // Add JavaFX dependencies lazy val javaFXModules = Seq("base", "controls", "fxml", "graphics", "media", "swing", "web") libraryDependencies ++= javaFXModules.map(m => "org.openjfx" % s"javafx-$m" % "14.0.1" classifier osName )