summary refs log tree commit diff
path: root/pkgs/applications/graphics/freecad
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2018-02-06 21:21:04 +0000
committerGitHub <noreply@github.com>2018-02-06 21:21:04 +0000
commit1137ba5a732f50059d8becdcd34877df524d1d80 (patch)
treecf8c86149d8d14b853a6d5d98b9709d57c1f1421 /pkgs/applications/graphics/freecad
parent4de7e5cae048d348ef90c7f1e4451b37147f8d16 (diff)
parent9f9039983eb4b79106860cea51ceb8b0a155fa2f (diff)
downloadnixpkgs-1137ba5a732f50059d8becdcd34877df524d1d80.tar
nixpkgs-1137ba5a732f50059d8becdcd34877df524d1d80.tar.gz
nixpkgs-1137ba5a732f50059d8becdcd34877df524d1d80.tar.bz2
nixpkgs-1137ba5a732f50059d8becdcd34877df524d1d80.tar.lz
nixpkgs-1137ba5a732f50059d8becdcd34877df524d1d80.tar.xz
nixpkgs-1137ba5a732f50059d8becdcd34877df524d1d80.tar.zst
nixpkgs-1137ba5a732f50059d8becdcd34877df524d1d80.zip
Merge pull request #27734 from jfrankenau/add-desktop-entries
Add desktop entry files for FreeCAD and ddccontrol
Diffstat (limited to 'pkgs/applications/graphics/freecad')
-rw-r--r--pkgs/applications/graphics/freecad/default.nix34
1 files changed, 33 insertions, 1 deletions
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index 80f893e7c3c..d517306c1d6 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, coin3d, xercesc, ode, eigen, qt4, opencascade, gts
-, boost, zlib, python27Packages, swig, gfortran, soqt, libf2c, makeWrapper }:
+, boost, zlib, python27Packages, swig, gfortran, soqt, libf2c, makeWrapper, makeDesktopItem }:
 
 let
   pythonPackages = python27Packages;
@@ -32,8 +32,40 @@ in stdenv.mkDerivation rec {
   postInstall = ''
     wrapProgram $out/bin/FreeCAD --prefix PYTHONPATH : $PYTHONPATH \
       --set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1
+
+    mkdir -p $out/share/mime/packages
+    cat << EOF > $out/share/mime/packages/freecad.xml
+    <?xml version="1.0" encoding="UTF-8"?>
+    <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+      <mime-type type="application/x-extension-fcstd">
+        <sub-class-of type="application/zip"/>
+        <comment>FreeCAD Document</comment>
+        <glob pattern="*.fcstd"/>
+      </mime-type>
+    </mime-info>
+    EOF
+
+    mkdir -p $out/share/applications
+    cp $desktopItem/share/applications/* $out/share/applications/
+    for entry in $out/share/applications/*.desktop; do
+      substituteAllInPlace $entry
+    done
   '';
 
+  desktopItem = makeDesktopItem {
+    name = "freecad";
+    desktopName = "FreeCAD";
+    genericName = "CAD Application";
+    comment = meta.description;
+    exec = "@out@/bin/FreeCAD %F";
+    categories = "Science;Education;Engineering;";
+    startupNotify = "true";
+    mimeType = "application/x-extension-fcstd;";
+    extraEntries = ''
+      Path=@out@/share/freecad
+    '';
+  };
+
   meta = with stdenv.lib; {
     description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
     homepage = https://www.freecadweb.org/;