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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, cmake
, ninja
, yasm
, libjpeg
, openssl
, libopus
, ffmpeg_4
, protobuf
, openh264
, usrsctp
, libvpx
, libX11
, libXtst
, libXcomposite
, libXdamage
, libXext
, libXrender
, libXrandr
, libXi
, glib
, abseil-cpp
, pipewire
, mesa
, libdrm
, libGL
, Cocoa
, AppKit
, IOKit
, IOSurface
, Foundation
, AVFoundation
, CoreMedia
, VideoToolbox
, CoreGraphics
, CoreVideo
, OpenGL
, Metal
, MetalKit
, CoreFoundation
, ApplicationServices
}:
stdenv.mkDerivation {
pname = "tg_owt";
version = "unstable-2022-04-13";
src = fetchFromGitHub {
owner = "desktop-app";
repo = "tg_owt";
rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396";
sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM=";
fetchSubmodules = true;
};
patches = [
# let it build with nixpkgs 10.12 sdk
./tg_owt-10.12-sdk.patch
];
postPatch = lib.optionalString stdenv.isLinux ''
substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \
--replace '"libEGL.so.1"' '"${libGL}/lib/libEGL.so.1"'
substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \
--replace '"libGL.so.1"' '"${libGL}/lib/libGL.so.1"'
substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \
--replace '"libgbm.so.1"' '"${mesa}/lib/libgbm.so.1"'
substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \
--replace '"libdrm.so.2"' '"${libdrm}/lib/libdrm.so.2"'
'';
outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkg-config cmake ninja yasm ];
buildInputs = [
libjpeg
openssl
libopus
ffmpeg_4
protobuf
openh264
usrsctp
libvpx
abseil-cpp
] ++ lib.optionals stdenv.isLinux [
libX11
libXtst
libXcomposite
libXdamage
libXext
libXrender
libXrandr
libXi
glib
pipewire
mesa
libdrm
libGL
] ++ lib.optionals stdenv.isDarwin [
Cocoa
AppKit
IOKit
IOSurface
Foundation
AVFoundation
CoreMedia
VideoToolbox
CoreGraphics
CoreVideo
OpenGL
Metal
MetalKit
CoreFoundation
ApplicationServices
];
# https://github.com/NixOS/nixpkgs/issues/130963
NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lc++abi";
enableParallelBuilding = true;
propagatedBuildInputs = [
# Required for linking downstream binaries.
abseil-cpp
openh264
usrsctp
libvpx
];
meta.license = lib.licenses.bsd3;
}
|