summaryrefslogtreecommitdiff
path: root/media-libs/avidemux-plugins/avidemux-plugins-2.8.1_p20251019.ebuild
blob: cc6c6e473c157225cdf4ff5e96c0be240e46a68c (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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

CMAKE_MAKEFILE_GENERATOR="emake"
# skip warning for ADM_demuxers/NativeAvisynth/CMakeLists.txt, unused (win)
CMAKE_QA_COMPAT_SKIP=1

inherit cmake flag-o-matic

MY_COMMIT="376c1469eebedcc724dbbcc0d45030f32c9d13f5"
DESCRIPTION="Plugins for Avidemux video editor"
HOMEPAGE="http://fixounet.free.fr/avidemux/"
SRC_URI="https://github.com/mean00/avidemux2/archive/${MY_COMMIT}.tar.gz -> avidemux-${PV}.tar.gz"
S="${WORKDIR}/avidemux2-${MY_COMMIT}"
CMAKE_USE_DIR="${S}/avidemux_plugins"

# Multiple licenses because of all the bundled stuff.
# See License.txt.
LICENSE="GPL-2 MIT PSF-2 LGPL-2 OFL-1.1"
SLOT="2.7"
KEYWORDS="~amd64 ~x86"
IUSE="aac aften alsa amr dcaenc dts fdk gui jack lame libaom libsamplerate nvenc opengl opus oss pulseaudio twolame vaapi vdpau vorbis vpx x264 x265 xvid"

COMMON_DEPEND="
	~media-libs/avidemux-core-${PV}:${SLOT}[nvenc=,vaapi=,vdpau=]
	~media-video/avidemux-${PV}:${SLOT}[opengl?,gui?]
	dev-libs/fribidi
	media-libs/a52dec
	media-libs/fontconfig:1.0
	media-libs/freetype:2
	media-libs/libass:=
	media-libs/libmad
	virtual/libiconv
	aac? (
		media-libs/faac
		media-libs/faad2
	)
	aften? ( media-libs/aften )
	alsa? ( media-libs/alsa-lib )
	amr? ( media-libs/opencore-amr )
	dcaenc? ( media-sound/dcaenc )
	dts? ( media-libs/libdca )
	fdk? ( media-libs/fdk-aac:0= )
	jack? (
		virtual/jack
		libsamplerate? ( media-libs/libsamplerate )
	)
	lame? ( media-sound/lame )
	libaom? ( media-libs/libaom:= )
	nvenc? ( media-libs/nv-codec-headers )
	opengl? ( media-libs/libglvnd )
	opus? ( media-libs/opus )
	pulseaudio? ( media-libs/libpulse )
	gui? ( dev-qt/qtbase:6[gui,opengl,widgets] )
	twolame? ( media-sound/twolame )
	vaapi? ( media-libs/libva:= )
	vorbis? ( media-libs/libvorbis )
	vpx? ( media-libs/libvpx:0= )
	x264? ( media-libs/x264:0= )
	x265? ( media-libs/x265:0= )
	xvid? ( media-libs/xvid )
"
DEPEND="
	${COMMON_DEPEND}
	oss? ( virtual/os-headers )
"
RDEPEND="
	${COMMON_DEPEND}
	!<media-libs/avidemux-plugins-${PV}
"

PATCHES=(
	"${FILESDIR}/${PN}-2.8.1_p20251019-optional-pulse.patch"
	"${FILESDIR}/${PN}-2.8.1_p20251019-optional-libsamplerate.patch"
	"${FILESDIR}/${PN}-2.8.1_p20251019-include.patch"
	# https://github.com/mean00/avidemux2/pull/548.patch
	"${FILESDIR}/${PN}-2.8.1_p20251019-fix_clang.patch"
)

src_configure() {
	# -Werror=odr
	# https://bugs.gentoo.org/859829
	#
	# Upstream has abandoned sourceforge for github. And doesn't enable github issues.
	# Message received, no bug reported.
	filter-lto

	# See bug 432322.
	use x86 && replace-flags -O0 -O1

	PLUGINDIRS=(
		buildPluginsCommon
		buildPluginsCli
		$(usev gui buildPluginsQt4)
	)

	# checked by Common/Cli/Qt4
	local all_mycmakeargs=(
		-DVERBOSE=ON
		-DX264="$(usex x264)"
		-DX265="$(usex x265)"
	)

	# buildPluginsCommon
	local common_mycmakeargs=(
		-DPLUGIN_UI=COMMON
		"${all_mycmakeargs[@]}"
		-DAVIDEMUX_SOURCE_DIR='${S}'
		-DFAAC="$(usex aac)"
		-DFAAD="$(usex aac)"
		-DAFTEN="$(usex aften)"
		-DALSA="$(usex alsa)"
		-DOPENCORE_AMRNB="$(usex amr)"
		-DOPENCORE_AMRWB="$(usex amr)"
		-DDCAENC="$(usex dcaenc)"
		-DLIBDCA="$(usex dts)"
		-DFDK_AAC="$(usex fdk)"
		-DJACK="$(usex jack)"
		$(usev jack -DSRC=$(usex libsamplerate))
		-DLAME="$(usex lame)"
		-DAOM="$(usex libaom)"
		-DOPUS="$(usex opus)"
		-DOPUS_ENCODER="$(usex opus)"
		-DOSS="$(usex oss)"
		-DPULSEAUDIO="$(usex pulseaudio)"
		-DTWOLAME="$(usex twolame)"
		-DLIBVORBIS="$(usex vorbis)"
		-DVORBIS="$(usex vorbis)"
		-DVPXENC="$(usex vpx)"
		-DXVID="$(usex xvid)"
		-DUSE_EXTERNAL_LIBA52=yes
		-DUSE_EXTERNAL_LIBMAD=yes
	)

	# buildPluginsCli
	local cli_mycmakeargs=(
		-DPLUGIN_UI=CLI
		"${all_mycmakeargs[@]}"
	)

	# buildPluginsQt4
	local gui_mycmakeargs=(
		-DPLUGIN_UI=QT4
		"${all_mycmakeargs[@]}"
		-DENABLE_QT4=OFF
		-DENABLE_QT5=OFF
		-DENABLE_QT6=ON
		-DOPENGL="$(usex opengl)"
	)

	local plugin
	local mycmakeargs
	for plugin in "${PLUGINDIRS[@]}" ; do
		case "${plugin}" in
			"buildPluginsCommon")
				mycmakeargs=( "${common_mycmakeargs[@]}" ) ;;
			"buildPluginsCli")
				mycmakeargs=( "${cli_mycmakeargs[@]}" ) ;;
			"buildPluginsQt4")
				mycmakeargs=( "${gui_mycmakeargs[@]}" ) ;;
			*)
				die "plugin not available" ;;
		esac
		BUILD_DIR="${WORKDIR}/${P}_build/${plugin}" cmake_src_configure
	done
}

multi_plugins() {
	local plugin
	for plugin in "${PLUGINDIRS[@]}" ; do
		BUILD_DIR="${WORKDIR}/${P}_build/${plugin}" "${@}"
	done
}

src_compile() {
	multi_plugins cmake_src_compile
}

src_install() {
	multi_plugins cmake_src_install
}