From 66be5560298f6c7ae9799202d891d967daa74b25 Mon Sep 17 00:00:00 2001
From: OPNA2608 <christoph.neidahl@gmail.com>
Date: Fri, 16 Apr 2021 20:39:20 +0200
Subject: [PATCH] foxotron: init at 2021-03-12

---
 .../graphics/foxotron/default.nix             | 74 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  4 +
 2 files changed, 78 insertions(+)
 create mode 100644 pkgs/applications/graphics/foxotron/default.nix

diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix
new file mode 100644
index 00000000000..71adfe0d2db
--- /dev/null
+++ b/pkgs/applications/graphics/foxotron/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, pkg-config
+, makeWrapper
+, zlib
+, libX11
+, libXrandr
+, libXinerama
+, libXcursor
+, libXi
+, libXext
+, libGLU
+, alsaLib
+, fontconfig
+, AVFoundation
+, Carbon
+, Cocoa
+, CoreAudio
+, Kernel
+, OpenGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "foxotron";
+  version = "2021-03-12";
+
+  src = fetchFromGitHub {
+    owner = "Gargaj";
+    repo = "Foxotron";
+    rev = version;
+    fetchSubmodules = true;
+    sha256 = "1finvbs3pbfyvm525blwgwl5jci2zjxb1923i0cm8rmf7wasaapb";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config makeWrapper ];
+
+  buildInputs = [ zlib ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXrandr libXinerama libXcursor libXi libXext alsaLib fontconfig libGLU ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib/foxotron}
+    cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \
+      ../{config.json,Shaders,Skyboxes} $out/lib/foxotron/
+    wrapProgram $out/lib/foxotron/Foxotron \
+      --run "cd $out/lib/foxotron"
+    ln -s $out/{lib/foxotron,bin}/Foxotron
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "General purpose model viewer";
+    longDescription = ''
+      ASSIMP based general purpose model viewer ("turntable") created for the
+      Revision 2021 3D Graphics Competition.
+    '';
+    homepage = "https://github.com/Gargaj/Foxotron";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 30ed4770905..99ebbc0a77b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -22959,6 +22959,10 @@ in
     inherit buildPythonApplication;
   };
 
+  foxotron = callPackage ../applications/graphics/foxotron {
+    inherit (darwin.apple_sdk.frameworks) AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL;
+  };
+
   foxtrotgps = callPackage ../applications/misc/foxtrotgps { };
 
   fractal = callPackage ../applications/networking/instant-messengers/fractal { };