about summary refs log tree commit diff
path: root/pkgs/applications/science/electronics
diff options
context:
space:
mode:
authorEvils <evils.devils@protonmail.com>2020-04-05 21:23:36 +0200
committerEvils <evils.devils@protonmail.com>2020-05-07 01:54:51 +0200
commit1059fdf1433bc4964faaa2010bfde54d8c8c687f (patch)
tree5e07cc9cc2e68fa09301f6bd5fcc42d6416b17b7 /pkgs/applications/science/electronics
parent95e4e33bdfd03adce366f09b5cd7db4ee9e86a91 (diff)
downloadnixlib-1059fdf1433bc4964faaa2010bfde54d8c8c687f.tar
nixlib-1059fdf1433bc4964faaa2010bfde54d8c8c687f.tar.gz
nixlib-1059fdf1433bc4964faaa2010bfde54d8c8c687f.tar.bz2
nixlib-1059fdf1433bc4964faaa2010bfde54d8c8c687f.tar.lz
nixlib-1059fdf1433bc4964faaa2010bfde54d8c8c687f.tar.xz
nixlib-1059fdf1433bc4964faaa2010bfde54d8c8c687f.tar.zst
nixlib-1059fdf1433bc4964faaa2010bfde54d8c8c687f.zip
kicad: link utils; clean up wrapper installPhase
Diffstat (limited to 'pkgs/applications/science/electronics')
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix47
1 files changed, 20 insertions, 27 deletions
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 51ec1dad8aa3..2aa2686a29a4 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -85,34 +85,27 @@ stdenv.mkDerivation rec {
   ++ [ "--set GDK_PIXBUF_MODULE_FILE ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]
   ;
 
-  # dunno why i have to add $makeWrapperArgs manually...
+  # why does $makeWrapperArgs have to be added explicitly?
   # $out and $program_PYTHONPATH don't exist when makeWrapperArgs gets set?
-  # not sure if anything has to be done with the other stuff in base/bin
-  # dxf2idf, idf2vrml, idfcyl, idfrect, kicad2step, kicad-ogltest
-  installPhase =
-    optionalString (scriptingSupport) '' buildPythonPath "${base} $pythonPath"
-    '' +
-    '' makeWrapper ${base}/bin/kicad $out/bin/kicad $makeWrapperArgs ''
-    + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
-    '' +
-    '' makeWrapper ${base}/bin/pcbnew $out/bin/pcbnew $makeWrapperArgs ''
-    + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
-    '' +
-    '' makeWrapper ${base}/bin/eeschema $out/bin/eeschema $makeWrapperArgs ''
-    + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
-    '' +
-    '' makeWrapper ${base}/bin/gerbview $out/bin/gerbview $makeWrapperArgs ''
-    + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
-    '' +
-    '' makeWrapper ${base}/bin/pcb_calculator $out/bin/pcb_calculator $makeWrapperArgs ''
-    + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
-    '' +
-    '' makeWrapper ${base}/bin/pl_editor $out/bin/pl_editor $makeWrapperArgs ''
-    + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
-    '' +
-    '' makeWrapper ${base}/bin/bitmap2component $out/bin/bitmap2component $makeWrapperArgs ''
-    + optionalString (scriptingSupport) '' --set PYTHONPATH "$program_PYTHONPATH"
-    ''
+  # kicad-ogltest's source seems to indicate that crashing is expected behaviour...
+  installPhase = with lib;
+    let
+      tools = [ "kicad" "pcbnew" "eeschema" "gerbview" "pcb_calculator" "pl_editor" "bitmap2component" ];
+      utils = [ "dxf2idf" "idf2vrml" "idfcyl" "idfrect" "kicad2step" "kicad-ogltest" ];
+    in
+    ( concatStringsSep "\n"
+      ( flatten [
+        ( optionalString (scriptingSupport) "buildPythonPath \"${base} $pythonPath\" \n" )
+
+        # wrap each of the directly usable tools
+        ( map ( tool: "makeWrapper ${base}/bin/${tool} $out/bin/${tool} $makeWrapperArgs"
+          + optionalString (scriptingSupport) " --set PYTHONPATH \"$program_PYTHONPATH\""
+            ) tools )
+
+        # link in the CLI utils
+        ( map ( util: "ln -s ${base}/bin/${util} $out/bin/${util}" ) utils )
+      ])
+    )
   ;
 
   # can't run this for each pname