summary refs log tree commit diff
path: root/pkgs/applications/science/electronics/kicad/libraries.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/science/electronics/kicad/libraries.nix')
-rw-r--r--pkgs/applications/science/electronics/kicad/libraries.nix64
1 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/applications/science/electronics/kicad/libraries.nix b/pkgs/applications/science/electronics/kicad/libraries.nix
new file mode 100644
index 00000000000..53e190d2749
--- /dev/null
+++ b/pkgs/applications/science/electronics/kicad/libraries.nix
@@ -0,0 +1,64 @@
+{ lib, stdenv, cmake, gettext
+, fetchFromGitHub, fetchFromGitLab
+, version, libSources
+}:
+
+# callPackage libraries {
+#   version = "unstable";
+#   libs.symbols = {
+#     rev = "09f9..";
+#     sha256 = "...";
+#   };
+# };
+with lib;
+let
+  mkLib = name: attrs:
+    stdenv.mkDerivation (
+      {
+        pname = "kicad-${name}";
+        version = "${version}";
+        src = fetchFromGitHub (
+          {
+            owner = "KiCad";
+            repo = "kicad-${name}";
+            rev = version;
+            inherit name;
+          } // (libSources.${name} or { })
+        );
+        nativeBuildInputs = [ cmake ];
+        meta.license = licenses.cc-by-sa-40;
+      } // attrs
+    );
+in
+{
+  symbols = mkLib "symbols" { };
+  templates = mkLib "templates" { };
+  footprints = mkLib "footprints" { };
+  packages3d = mkLib "packages3d" {
+    hydraPlatforms = []; # this is a ~1 GiB download, occupies ~5 GiB in store
+  };
+
+  # i18n is a special case, not actually a library
+  # more a part of kicad proper, but also optional and separate
+  # since their move to gitlab they're keeping it in a separate path
+  # kicad has no way to find i18n except through a path relative to its install path
+  # therefore this is being linked into ${kicad-base}/share/
+  # and defined here to make use of the rev & sha256's brought here for the libs
+  i18n = let name = "i18n"; in
+    stdenv.mkDerivation {
+      pname = "kicad-${name}";
+      version = "${version}";
+      src = fetchFromGitLab (
+        {
+          group = "kicad";
+          owner = "code";
+          repo = "kicad-${name}";
+          rev = version;
+          inherit name;
+        } // (libSources.${name} or { })
+      );
+      buildInputs = [ gettext ];
+      nativeBuildInputs = [ cmake ];
+      meta.license = licenses.gpl2; # https://github.com/KiCad/kicad-i18n/issues/3
+    };
+}