summary refs log tree commit diff
diff options
context:
space:
mode:
authorpennae <82953136+pennae@users.noreply.github.com>2023-05-22 19:25:12 +0200
committerGitHub <noreply@github.com>2023-05-22 19:25:12 +0200
commit229321224ae97d6a723cc084674f57016c46dacd (patch)
tree6be387e77b93f454e16d8dde2fad5c5734494552
parent101a3913d5daf9f9d481134d111ca72f2b6e9bb8 (diff)
parente1a80940a50ef7631d71497f9ff41817098fa092 (diff)
Merge pull request #233441 from evils/kicad
kicad: make KICAD7_TEMPLATE_DIR a single path
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix16
1 files changed, 13 insertions, 3 deletions
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 50628a3e1f019..9b98a8231eb61 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -24,6 +24,7 @@
 , with3d ? true
 , withI18n ? true
 , srcs ? { }
+, symlinkJoin
 }:
 
 # The `srcs` parameter can be used to override the kicad source code
@@ -136,6 +137,17 @@ stdenv.mkDerivation rec {
     ++ optionals (withScripting)
     [ python.pkgs.wrapPython ];
 
+  # KICAD7_TEMPLATE_DIR only works with a single path (it does not handle : separated paths)
+  # but it's used to find both the templates and the symbol/footprint library tables
+  # https://gitlab.com/kicad/code/kicad/-/issues/14792
+  template_dir = symlinkJoin {
+    name = "KiCad_template_dir";
+    paths = with passthru.libraries; [
+      "${templates}/share/kicad/template"
+      "${footprints}/share/kicad/template"
+      "${symbols}/share/kicad/template"
+    ];
+  };
   # We are emulating wrapGAppsHook, along with other variables to the wrapper
   makeWrapperArgs = with passthru.libraries; [
     "--prefix XDG_DATA_DIRS : ${base}/share"
@@ -150,9 +162,7 @@ stdenv.mkDerivation rec {
     "--set-default MOZ_DBUS_REMOTE 1"
     "--set-default KICAD7_FOOTPRINT_DIR ${footprints}/share/kicad/footprints"
     "--set-default KICAD7_SYMBOL_DIR ${symbols}/share/kicad/symbols"
-    "--set-default KICAD7_TEMPLATE_DIR ${templates}/share/kicad/template"
-    "--prefix KICAD7_TEMPLATE_DIR : ${symbols}/share/kicad/template"
-    "--prefix KICAD7_TEMPLATE_DIR : ${footprints}/share/kicad/template"
+    "--set-default KICAD7_TEMPLATE_DIR ${template_dir}"
   ]
   ++ optionals (with3d)
   [