summary refs log tree commit diff
path: root/pkgs/applications/misc/cura/default.nix
diff options
context:
space:
mode:
authorambrop7@gmail.com <Ambroz Bizjak>2014-03-25 23:17:17 +0100
committerambrop7@gmail.com <Ambroz Bizjak>2014-03-25 23:17:17 +0100
commit5f2167627eb7ee0d43bdd5898cbf8dee05665fd4 (patch)
tree655d8f2276150f2d2695e1c3469093335cea6472 /pkgs/applications/misc/cura/default.nix
parentae8a8b5deb305e2e8884d9f34a91a7ab28b62b1b (diff)
downloadnixpkgs-5f2167627eb7ee0d43bdd5898cbf8dee05665fd4.tar
nixpkgs-5f2167627eb7ee0d43bdd5898cbf8dee05665fd4.tar.gz
nixpkgs-5f2167627eb7ee0d43bdd5898cbf8dee05665fd4.tar.bz2
nixpkgs-5f2167627eb7ee0d43bdd5898cbf8dee05665fd4.tar.lz
nixpkgs-5f2167627eb7ee0d43bdd5898cbf8dee05665fd4.tar.xz
nixpkgs-5f2167627eb7ee0d43bdd5898cbf8dee05665fd4.tar.zst
nixpkgs-5f2167627eb7ee0d43bdd5898cbf8dee05665fd4.zip
Add Cura.
Diffstat (limited to 'pkgs/applications/misc/cura/default.nix')
-rw-r--r--pkgs/applications/misc/cura/default.nix71
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
new file mode 100644
index 00000000000..937025c0840
--- /dev/null
+++ b/pkgs/applications/misc/cura/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchgit }:
+let
+    py = python27Packages;
+in
+stdenv.mkDerivation rec {
+  name = "cura";
+
+  src = fetchgit {
+    url = "https://github.com/daid/Cura";
+    rev = "58414695269d60ca9b165e8cbc3424933ed79403";
+    sha256 = "1nxrrz8sjjx9i9cyvz15vay6yarnywp3vlk7qzr65sw88lzxgq23";
+    fetchSubmodules = false;
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "Cura";
+    exec = "cura";
+    icon = "cura";
+    comment = "Cura";
+    desktopName = "Cura";
+    genericName = "3D printing host software";
+    categories = "GNOME;GTK;Utility;";
+  };
+
+  python_deps = [ py.pyopengl py.pyserial py.numpy py.wxPython30 py.power py.setuptools ];
+
+  pythonPath = python_deps;
+
+  propagatedBuildInputs = python_deps;
+
+  buildInputs = [ curaengine py.wrapPython ];
+
+  configurePhase = "";
+  buildPhase = "";
+
+  installPhase = ''
+    # Install Python code.
+    site_packages=$out/lib/python2.7/site-packages
+    mkdir -p $site_packages
+    cp -r Cura $site_packages/
+
+    # Install resources.
+    resources=$out/share/cura
+    mkdir -p $resources
+    cp -r resources/* $resources/
+    sed -i 's|os.path.join(os.path.dirname(__file__), "../../resources")|"'$resources'"|g' $site_packages/Cura/util/resources.py
+
+    # Install executable.
+    mkdir -p $out/bin
+    cp Cura/cura.py $out/bin/cura
+    chmod +x $out/bin/cura
+    sed -i 's|#!/usr/bin/python|#!/usr/bin/env python|' $out/bin/cura
+    wrapPythonPrograms
+
+    # Make it find CuraEngine.
+    echo "def getEngineFilename(): return '${curaengine}/bin/CuraEngine'" >> $site_packages/Cura/util/sliceEngine.py
+
+    # Install desktop item.
+    mkdir -p "$out"/share/applications
+    cp "$desktopItem"/share/applications/* "$out"/share/applications/
+    mkdir -p "$out"/share/icons
+    ln -s "$resources/images/c.png" "$out"/share/icons/cura.png
+  '';
+
+  meta = with stdenv.lib; {
+    description = "3D printing host software";
+    homepage = https://github.com/daid/Cura;
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+  };
+}