blob: a8eb74217a4f91a659c7a99013a8a87c7e8479f7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
{
lib,
stdenv,
symlinkJoin,
fetchFromGitHub,
libxcrypt,
}:
let
version = "3.6";
srcAll = fetchFromGitHub {
owner = "WiringPi";
repo = "WiringPi";
rev = version;
sha256 = "sha256-Hw81Ua9LTb/9l3Js1rx8TfCOF59MrrvH6AGsAsG1SoE=";
};
mkSubProject =
{
subprj, # The only mandatory argument
buildInputs ? [ ],
src ? srcAll,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wiringpi-${subprj}";
inherit version src;
sourceRoot = "${src.name}/${subprj}";
inherit buildInputs;
# Remove (meant for other OSs) lines from Makefiles
preInstall = ''
sed -i "/chown root/d" Makefile
sed -i "/chmod/d" Makefile
'';
makeFlags = [
"DESTDIR=${placeholder "out"}"
"PREFIX=/."
# On NixOS we don't need to run ldconfig during build:
"LDCONFIG=echo"
];
});
passthru = {
# Helps nix-update and probably nixpkgs-update find the src of this package
# automatically.
src = srcAll;
inherit mkSubProject;
wiringPi = mkSubProject {
subprj = "wiringPi";
buildInputs = [ libxcrypt ];
};
devLib = mkSubProject {
subprj = "devLib";
buildInputs = [ passthru.wiringPi ];
};
wiringPiD = mkSubProject {
subprj = "wiringPiD";
buildInputs = [
libxcrypt
passthru.wiringPi
passthru.devLib
];
};
gpio = mkSubProject {
subprj = "gpio";
buildInputs = [
libxcrypt
passthru.wiringPi
passthru.devLib
];
};
};
in
symlinkJoin {
name = "wiringpi-${version}";
inherit passthru;
paths = [
passthru.wiringPi
passthru.devLib
passthru.wiringPiD
passthru.gpio
];
meta = with lib; {
description = "Gordon's Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings)";
homepage = "https://github.com/WiringPi/WiringPi";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ doronbehar ];
platforms = platforms.linux;
};
}
|