From e9673bea25cebb4ef07ad1cb82dbdea499e698f7 Mon Sep 17 00:00:00 2001
From: Vincent Lafeychine <vincent.lafeychine@gmail.com>
Date: Sat, 5 Feb 2022 13:26:09 +0100
Subject: [PATCH] Switch to Scala Native + Add every dependencies for SDL

---
 build.sbt           | 12 ++++++++++--
 project/plugins.sbt |  1 +
 shell.nix           | 13 +++++++++++++
 3 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 shell.nix

diff --git a/build.sbt b/build.sbt
index 980d94a..b421d4d 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,7 +1,15 @@
 name := "prog-2"
 scalaVersion := "3.1.1"
 
+enablePlugins(ScalaNativePlugin)
+
+nativeCompileOptions ++= Seq("-stdlib=libc++")
+nativeLinkingOptions ++= Seq("-fuse-ld=lld")
+
+nativeMode := "release-fast"
+nativeLTO := "thin"
+
 libraryDependencies ++= Seq(
-  "org.scalatest" %% "scalatest-funsuite" % "3.2.11" % "test",
-  "org.scala-lang.modules" %% "scala-swing" % "3.0.0"
+    "org.scalatest" %% "scalatest-funsuite" % "3.2.11" % "test",
+    "org.scala-lang.modules" %% "scala-swing" % "3.0.0"
 )
diff --git a/project/plugins.sbt b/project/plugins.sbt
index e24df63..edb0c65 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,2 +1,3 @@
 addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.6.1")
 addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6")
+addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.3")
diff --git a/shell.nix b/shell.nix
new file mode 100644
index 0000000..135e4cd
--- /dev/null
+++ b/shell.nix
@@ -0,0 +1,13 @@
+{ pkgs ? import <nixpkgs> { } }:
+
+with pkgs;
+
+let
+  llvmPackages = llvmPackages_13;
+  stdenv = llvmPackages.libcxxStdenv;
+in stdenv.mkDerivation (rec {
+  name = "prog-2";
+  buildInputs = [ llvmPackages.lld sbt SDL2 which ];
+  LD_LIBRARY_PATH =
+    lib.makeLibraryPath [ llvmPackages.libcxx llvmPackages.libcxxabi SDL2 ];
+})
-- 
GitLab