1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cmake,
6 pkg-config,
7 udev,
8 libcec_platform,
9 withLibraspberrypi ? false,
10 libraspberrypi,
11}:
12
13stdenv.mkDerivation rec {
14 pname = "libcec";
15 version = "7.1.1";
16
17 src = fetchFromGitHub {
18 owner = "Pulse-Eight";
19 repo = "libcec";
20 rev = "libcec-${version}";
21 sha256 = "sha256-t8GUQKWTcxjyaAlsTP4C+heYiVYowG7x+fmjHPND7As=";
22 };
23
24 # Fix dlopen path
25 postPatch = ''
26 substituteInPlace include/cecloader.h --replace "\"libcec." "\"$out/lib/libcec."
27 '';
28
29 nativeBuildInputs = [
30 pkg-config
31 cmake
32 ];
33 buildInputs = [
34 libcec_platform
35 ]
36 ++ lib.optional stdenv.hostPlatform.isLinux udev
37 ++ lib.optional withLibraspberrypi libraspberrypi;
38
39 cmakeFlags = [
40 "-DBUILD_SHARED_LIBS=1"
41 ]
42 ++ lib.optionals stdenv.hostPlatform.isLinux [
43 "-DHAVE_LINUX_API=1"
44 ];
45
46 meta = with lib; {
47 description = "Allows you (with the right hardware) to control your device with your TV remote control using existing HDMI cabling";
48 homepage = "http://libcec.pulse-eight.com";
49 license = lib.licenses.gpl2Plus;
50 platforms = platforms.linux ++ platforms.darwin;
51 teams = [ teams.kodi ];
52 };
53}