1{
2 lib,
3 stdenv,
4 cmake,
5 libSrc,
6 stepreduce,
7 parallel,
8 zip,
9}:
10let
11 mkLib =
12 name:
13 stdenv.mkDerivation {
14 pname = "kicad-${name}";
15 version = builtins.substring 0 10 (libSrc name).rev;
16
17 src = libSrc name;
18
19 nativeBuildInputs = [
20 cmake
21 ]
22 ++ lib.optionals (name == "packages3d") [
23 stepreduce
24 parallel
25 zip
26 ];
27
28 postInstall =
29 lib.optionalString (name == "packages3d") ''
30 find $out -type f -name '*.step' | parallel 'stepreduce {} {} && zip -9 {.}.stpZ {} && rm {}'
31 ''
32 + lib.optionalString (name == "footprints") ''
33 grep -rl '\.step' $out | xargs sed -i 's/\.step/.stpZ/g'
34 '';
35
36 meta = {
37 license = lib.licenses.cc-by-sa-40;
38 platforms = lib.platforms.all;
39 };
40 };
41in
42{
43 symbols = mkLib "symbols";
44 templates = mkLib "templates";
45 footprints = mkLib "footprints";
46 packages3d = mkLib "packages3d";
47}