summary refs log tree commit diff
path: root/pkgs/applications/graphics/rx
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2019-09-29 23:58:05 +0200
committerMinijackson <minijackson@riseup.net>2019-09-29 23:58:05 +0200
commit0309903c799a7445a2acddc63f3948a75e58f46d (patch)
tree027eaf5c2e6ab9b6e8c77a03eb8beb4f53816522 /pkgs/applications/graphics/rx
parent27a335c963ee316dd07976ab9edeca44688c4228 (diff)
downloadnixpkgs-0309903c799a7445a2acddc63f3948a75e58f46d.tar
nixpkgs-0309903c799a7445a2acddc63f3948a75e58f46d.tar.gz
nixpkgs-0309903c799a7445a2acddc63f3948a75e58f46d.tar.bz2
nixpkgs-0309903c799a7445a2acddc63f3948a75e58f46d.tar.lz
nixpkgs-0309903c799a7445a2acddc63f3948a75e58f46d.tar.xz
nixpkgs-0309903c799a7445a2acddc63f3948a75e58f46d.tar.zst
nixpkgs-0309903c799a7445a2acddc63f3948a75e58f46d.zip
rx: init at 0.2.0
Diffstat (limited to 'pkgs/applications/graphics/rx')
-rw-r--r--pkgs/applications/graphics/rx/default.nix58
1 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/applications/graphics/rx/default.nix b/pkgs/applications/graphics/rx/default.nix
new file mode 100644
index 00000000000..4e8519d17b6
--- /dev/null
+++ b/pkgs/applications/graphics/rx/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, rustPlatform, fetchFromGitHub, makeWrapper
+, cmake, pkgconfig
+, xorg ? null
+, vulkan-loader ? null }:
+
+assert stdenv.isLinux -> xorg != null;
+assert stdenv.isLinux -> vulkan-loader != null;
+
+let
+    graphicsBackend = if stdenv.isDarwin then "metal" else "vulkan";
+in
+  with stdenv.lib;
+  rustPlatform.buildRustPackage rec {
+    pname = "rx";
+    version = "0.2.0";
+
+    src = fetchFromGitHub {
+      owner = "cloudhead";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "0f6cw8zqr45bprj8ibhp89bb2a077g4zinfrdn943csdmh47qzcl";
+    };
+
+    cargoSha256 = "05bqsw0nw24xysq86qa3hx9b5ncf50wfxsgpy388yrs2dfnphwlx";
+
+    nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+    buildInputs = optionals stdenv.isLinux
+    (with xorg; [
+      # glfw-sys dependencies:
+      libX11 libXrandr libXinerama libXcursor libXi libXext
+    ]);
+
+    cargoBuildFlags = [ "--features=${graphicsBackend}" ];
+
+    # TODO: better to factor that into the rust platform
+    checkPhase = ''
+      runHook preCheck
+      echo "Running cargo test"
+      cargo test --features=${graphicsBackend}
+      runHook postCheck
+    '';
+
+    postInstall = optional stdenv.isLinux ''
+      mkdir -p $out/share/applications
+      cp $src/rx.desktop $out/share/applications
+      wrapProgram $out/bin/rx --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+    '';
+
+    meta = {
+      description = "Modern and extensible pixel editor implemented in Rust";
+      homepage = "https://cloudhead.io/rx/";
+      license = licenses.gpl3;
+      maintainers = with maintainers; [ minijackson ];
+      platforms   = with platforms; (linux ++ darwin ++ windows);
+      inherit version;
+    };
+  }