1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 obs-studio,
6 ffmpeg,
7 libjpeg,
8 libimobiledevice,
9 libusbmuxd,
10 libplist,
11 pkg-config,
12}:
13stdenv.mkDerivation (finalAttrs: {
14 pname = "droidcam-obs";
15 version = "2.4.0";
16
17 src = fetchFromGitHub {
18 owner = "dev47apps";
19 repo = "droidcam-obs-plugin";
20 tag = finalAttrs.version;
21 sha256 = "sha256-rA+EMtAeM2LSUqtiYJt0hHZ85aZ+5bvVUUjIG2LC3pc=";
22 };
23
24 preBuild = ''
25 mkdir ./build
26 '';
27
28 buildInputs = [
29 libjpeg
30 libimobiledevice
31 libusbmuxd
32 libplist
33 obs-studio
34 ffmpeg
35 ];
36
37 nativeBuildInputs = [
38 pkg-config
39 ];
40
41 # Flag reference in regard to:
42 # https://github.com/dev47apps/droidcam-obs-plugin/blob/master/linux/linux.mk
43 makeFlags = [
44 "ALLOW_STATIC=no"
45 "JPEG_DIR=${lib.getDev libjpeg}"
46 "JPEG_LIB=${lib.getLib libjpeg}/lib"
47 "IMOBILEDEV_DIR=${lib.getDev libimobiledevice}"
48 "IMOBILEDEV_DIR=${lib.getLib libimobiledevice}"
49 "LIBOBS_INCLUDES=${obs-studio}/include/obs"
50 "FFMPEG_INCLUDES=${lib.getLib ffmpeg}"
51 "LIBUSBMUXD=libusbmuxd-2.0"
52 "LIBIMOBILEDEV=libimobiledevice-1.0"
53 ];
54
55 installPhase = ''
56 runHook preInstall
57
58 mkdir -p $out/share/obs/obs-plugins/droidcam-obs
59 mkdir -p $out/lib/obs-plugins
60 cp build/droidcam-obs.so $out/lib/obs-plugins
61 cp -R ./data/locale $out/share/obs/obs-plugins/droidcam-obs/locale
62
63 runHook postInstall
64 '';
65
66 doCheck = false;
67
68 meta = {
69 description = "DroidCam OBS";
70 homepage = "https://github.com/dev47apps/droidcam-obs-plugin";
71 license = lib.licenses.gpl2Plus;
72 maintainers = with lib.maintainers; [ NotAShelf ];
73 platforms = lib.platforms.linux;
74 };
75})