blob: d81482560789930cab988b0c85f9989db438b790 (
plain)
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit desktop linux-mod xdg
DESCRIPTION="Use your phone or tablet as webcam with a v4l device driver and app"
HOMEPAGE="https://www.dev47apps.com/droidcam/linux/"
SRC_URI="https://github.com/dev47apps/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
LICENSE="GPL-2"
SLOT="0"
IUSE="gtk"
# Requires connection to phone/tablet
RESTRICT="test"
DEPEND="
app-pda/libplist
app-pda/libusbmuxd
dev-libs/glib
dev-libs/libappindicator:3
dev-libs/libxml2
dev-util/android-tools
media-libs/alsa-lib
media-libs/libjpeg-turbo
>=media-libs/speex-1.2.0-r1
media-video/ffmpeg
gtk? (
dev-cpp/gtkmm:3.0
x11-libs/gdk-pixbuf
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/pango
)
"
RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
BUILD_TARGETS="all"
MODULE_NAMES="v4l2loopback-dc(video:${S}/v4l2loopback:${S}/v4l2loopback)"
MODULESD_V4L2LOOPBACK_DC_ENABLED="yes"
CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT"
ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support"
PATCHES="${FILESDIR}/${PN}-makefile-fixes.patch"
src_prepare() {
if ! use gtk; then
sed -i -e '/cflags gtk+/d' Makefile || die
default
else
# remove path and extension from Icon and Exec entry
sed -i -e 's/Icon=\/opt\/droidcam-icon.png/Icon=droidcam/g' \
-e 's/\/usr\/local\/bin\/droidcam/droidcam/g' \
droidcam.desktop || die
sed -i -e 's%/opt/droidcam-icon.png%/usr/share/icons/hicolor/96x96/apps/droidcam.png%g' src/droidcam.c || die
xdg_src_prepare
fi
}
src_configure() {
set_arch_to_kernel
default
}
src_compile() {
if use gtk; then
emake droidcam
fi
emake droidcam-cli
if linux_chkconfig_present CC_IS_CLANG; then
BUILD_PARAMS+=' CC=${CHOST}-clang'
if linux_chkconfig_present LD_IS_LLD; then
BUILD_PARAMS+=' LD=ld.lld'
if linux_chkconfig_present LTO_CLANG_THIN; then
# kernel enables cache by default leading to sandbox violations
BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
fi
fi
fi
export KERNEL_DIR || die
linux-mod_src_compile
}
src_test() {
pushd "v4l2loopback" || die
default
./test || die
popd || die
}
src_install() {
if use gtk; then
dobin droidcam
newicon -s 32 icon.png droidcam.png
newicon -s 96 icon2.png droidcam.png
domenu droidcam.desktop
fi
dobin droidcam-cli
# The cli and gui do not auto load the module if unloaded (why not though?)
# so we just put it in modules-load.d to make sure it always works
insinto /etc/modules-load.d
if linux_config_exists; then
if linux_chkconfig_module SND_ALOOP; then
newins - "${PN}.conf" <<-EOF
v4l2loopback-dc
snd_aloop
EOF
else
newins - "${PN}.conf" <<-EOF
v4l2loopback-dc
EOF
fi
fi
einstalldocs
linux-mod_src_install
}
pkg_preinst() {
linux-mod_pkg_preinst
if use gtk; then
xdg_pkg_preinst
fi
}
pkg_postinst() {
linux-mod_pkg_postinst
if use gtk; then
xdg_pkg_postinst
else
elog
elog "Only droidcam-cli has been installed since 'gtk' flag was not set"
elog
fi
elog "The default resolution for v4l2loopback-dc (i.e. droidcam) is 640x480."
elog "You can change this value in /etc/modprobe.d/v4l2loopback-dc.conf"
elog
elog "Links to the Android/iPhone/iPad apps can be found at"
elog "https://www.dev47apps.com/"
}
pkg_postrm() {
linux-mod_pkg_postrm
if use gtk; then
xdg_pkg_postrm
fi
}
|