about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/inklecate/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/inklecate/default.nix')
-rw-r--r--nixpkgs/pkgs/development/compilers/inklecate/default.nix71
1 files changed, 30 insertions, 41 deletions
diff --git a/nixpkgs/pkgs/development/compilers/inklecate/default.nix b/nixpkgs/pkgs/development/compilers/inklecate/default.nix
index 6ed01d9bbcf6..32b91f5ddfec 100644
--- a/nixpkgs/pkgs/development/compilers/inklecate/default.nix
+++ b/nixpkgs/pkgs/development/compilers/inklecate/default.nix
@@ -1,54 +1,43 @@
-{ lib, stdenv, fetchurl, unzip, makeWrapper }:
-
-stdenv.mkDerivation rec {
+{ lib
+, stdenv
+, autoPatchelfHook
+, buildDotnetModule
+, dotnetCorePackages
+, fetchFromGitHub
+}:
+
+buildDotnetModule rec {
   pname = "inklecate";
   version = "1.0.0";
 
-  src =
-    if stdenv.isLinux then
-      fetchurl {
-        url    = "https://github.com/inkle/ink/releases/download/v${version}/inklecate_linux.zip";
-        sha256 = "6e17db766222998ba0ae5a5da9857e34896e683b9ec42fad528c3f8bea7398ea";
-        name   = "${pname}-${version}";
-      }
-    else if stdenv.isDarwin then
-      fetchurl {
-        url    = "https://github.com/inkle/ink/releases/download/v${version}/inklecate_mac.zip";
-        sha256 = "b6f4dd1f95c180637ce193dbb5fa6d59aeafe49a2121a05b7822e6cbbaa6931f";
-        name   = "${pname}-${version}";
-      }
-    else throw "Not supported on ${stdenv.hostPlatform.system}.";
-
-  # Work around the "unpacker appears to have produced no directories"
-  # case that happens when the archive doesn't have a subdirectory.
-  setSourceRoot = "sourceRoot=$(pwd)";
-
-  nativeBuildInputs = [ unzip makeWrapper ];
-
-  unpackPhase = ''
-    unzip -qq -j $src -d $pname-$version
-
-    rm $pname-$version/ink-engine-runtime.dll
-    rm $pname-$version/ink_compiler.dll
-  '';
+  src = fetchFromGitHub {
+    owner = "inkle";
+    repo = "ink";
+    rev = "v${version}";
+    sha256 = "00lagmwsbxap5mgnw4gndpavmv3xsgincdaq1zvw7fkc3vn3pxqc";
+  };
 
-  installPhase = ''
-    mkdir -p $out/bin/
+  nativeBuildInputs = [ autoPatchelfHook ];
+  buildInputs = [ stdenv.cc.cc.lib ];
 
-    cp $pname-$version/inklecate $out/bin/inklecate
-  '';
+  projectFile = "inklecate/inklecate.csproj";
+  nugetDeps = if stdenv.isDarwin then ./deps-darwin.nix else ./deps-linux.nix;
+  executables = [ "inklecate" ];
 
+  dotnet-runtime = dotnetCorePackages.runtime_3_1;
+  dotnet-sdk = dotnetCorePackages.sdk_6_0;
 
   meta = with lib; {
-    description     = "Compiler for ink, inkle's scripting language";
+    description = "Compiler for ink, inkle's scripting language";
     longDescription = ''
       Inklecate is a command-line compiler for ink, inkle's open source
       scripting language for writing interactive narrative
-      '';
-    homepage        = "https://www.inklestudios.com/ink/";
-    downloadPage    = "https://github.com/inkle/ink/releases";
-    license         = licenses.mit;
-    platforms       = platforms.unix;
-    maintainers     = with maintainers; [ shreerammodi ];
+    '';
+    homepage = "https://www.inklestudios.com/ink/";
+    downloadPage = "https://github.com/inkle/ink/";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    badPlatforms = platforms.aarch64;
+    maintainers = with maintainers; [ shreerammodi ];
   };
 }