app-admin/awscli: Bump to 1.37.9
[gentoo/gentoo.git] / media-libs / mlt / mlt-7.28.0-r1.ebuild
blobab6a9276f421d2391891878440b70ffca9069b82
1 # Copyright 1999-2024 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
4 EAPI=8
6 PYTHON_COMPAT=( python3_{10..13} )
7 inherit python-single-r1 cmake flag-o-matic
9 DESCRIPTION="Open source multimedia framework for television broadcasting"
10 HOMEPAGE="https://www.mltframework.org/"
11 SRC_URI="https://github.com/mltframework/${PN}/releases/download/v${PV}/${P}.tar.gz"
13 LICENSE="GPL-3"
14 SLOT="0/7"
15 KEYWORDS="amd64 arm64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
16 IUSE="debug ffmpeg frei0r gtk jack libsamplerate opencv opengl python qt6 rtaudio rubberband sdl test vdpau vidstab xine xml"
18 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
20 # Needs unpackaged 'kwalify'
21 RESTRICT="test"
23 # rtaudio will use OSS on non linux OSes
24 # Qt already needs FFTW/PLUS so let's just always have it on to ensure
25 # MLT is useful: bug #603168.
26 DEPEND="
27         >=media-libs/libebur128-1.2.2:=
28         sci-libs/fftw:3.0=
29         ffmpeg? ( media-video/ffmpeg:0=[vdpau?] )
30         frei0r? ( media-plugins/frei0r-plugins )
31         gtk? (
32                 media-libs/libexif
33                 x11-libs/pango
34         )
35         jack? (
36                 >=dev-libs/libxml2-2.5
37                 media-libs/ladspa-sdk
38                 virtual/jack
39         )
40         libsamplerate? ( >=media-libs/libsamplerate-0.1.2 )
41         opencv? (
42                 >=media-libs/opencv-4.5.1:=[contrib]
43                 || (
44                         media-libs/opencv[ffmpeg]
45                         media-libs/opencv[gstreamer]
46                 )
47         )
48         opengl? (
49                 media-libs/libglvnd
50                 media-video/movit
51         )
52         python? ( ${PYTHON_DEPS} )
53         qt6? (
54                 dev-qt/qt5compat:6
55                 dev-qt/qtbase:6[gui,network,opengl,widgets,xml]
56                 dev-qt/qtsvg:6
57                 media-libs/libexif
58                 x11-libs/libX11
59         )
60         rtaudio? (
61                 >=media-libs/rtaudio-4.1.2
62                 kernel_linux? ( media-libs/alsa-lib )
63         )
64         rubberband? ( media-libs/rubberband:= )
65         sdl? (
66                 media-libs/libsdl2[X,opengl,video]
67                 media-libs/sdl2-image
68         )
69         vidstab? ( media-libs/vidstab )
70         xine? ( >=media-libs/xine-lib-1.1.2_pre20060328-r7 )
71         xml? ( >=dev-libs/libxml2-2.5 )
73 #       java? ( >=virtual/jre-1.8:* )
74 #       perl? ( dev-lang/perl )
75 #       php? ( dev-lang/php )
76 #       ruby? ( ${RUBY_DEPS} )
77 #       sox? ( media-sound/sox )
78 #       tcl? ( dev-lang/tcl:0= )
79 RDEPEND="${DEPEND}"
80 BDEPEND="
81         virtual/pkgconfig
82         python? ( >=dev-lang/swig-2.0 )
85 DOCS=( AUTHORS NEWS README.md )
87 PATCHES=(
88         # downstream
89         "${FILESDIR}"/${PN}-6.10.0-swig-underlinking.patch
90         "${FILESDIR}"/${PN}-6.22.1-no_lua_bdepend.patch
91         "${FILESDIR}"/${PN}-7.0.1-cmake-symlink.patch
92         # in git master, https://github.com/mltframework/mlt/issues/1020
93         "${FILESDIR}"/${P}-fix-32bit.patch
96 pkg_setup() {
97         use python && python-single-r1_pkg_setup
100 src_prepare() {
101         # Respect CFLAGS LDFLAGS when building shared libraries. Bug #308873
102         if use python; then
103                 sed -i "/mlt.so/s/ -lmlt++ /& ${CFLAGS} ${LDFLAGS} /" src/swig/python/build || die
104                 python_fix_shebang src/swig/python
105         fi
107         cmake_src_prepare
110 src_configure() {
111         # Workaround for bug #919981
112         append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
114         local mycmakeargs=(
115                 -DCMAKE_SKIP_RPATH=ON
116                 -DCLANG_FORMAT=OFF
117                 -DGPL=ON
118                 -DGPL3=ON
119                 -DMOD_QT=OFF
120                 -DMOD_GLAXNIMATE=OFF
121                 -DMOD_KDENLIVE=ON
122                 -DMOD_PLUS=ON
123                 -DMOD_SDL1=OFF
124                 -DMOD_SOX=OFF
125                 -DMOD_SPATIALAUDIO=OFF # TODO: package libspatialaudio
126                 -DUSE_LV2=OFF   # TODO
127                 -DUSE_VST2=OFF  # TODO
128                 -DMOD_AVFORMAT=$(usex ffmpeg)
129                 -DMOD_FREI0R=$(usex frei0r)
130                 -DMOD_GDK=$(usex gtk)
131                 -DMOD_JACKRACK=$(usex jack)
132                 -DMOD_RESAMPLE=$(usex libsamplerate)
133                 -DMOD_OPENCV=$(usex opencv)
134                 -DMOD_MOVIT=$(usex opengl)
135                 -DMOD_QT6=$(usex qt6)
136                 -DMOD_GLAXNIMATE_QT6=$(usex qt6)
137                 -DMOD_RTAUDIO=$(usex rtaudio)
138                 -DMOD_RUBBERBAND=$(usex rubberband)
139                 -DMOD_SDL2=$(usex sdl)
140                 -DBUILD_TESTING=OFF # Needs unpackaged 'kwalify'; restricted anyway.
141                 -DMOD_VIDSTAB=$(usex vidstab)
142                 -DMOD_XINE=$(usex xine)
143                 -DMOD_XML=$(usex xml)
144         )
146         # TODO: rework upstream CMake to allow controlling MMX/SSE/SSE2
147         # TODO: add swig language bindings?
148         # see also https://www.mltframework.org/twiki/bin/view/MLT/ExtremeMakeover
150         if use python; then
151                 mycmakeargs+=(
152                         -DSWIG_PYTHON=ON
153                         -DPython3_EXECUTABLE="${PYTHON}"
154                 )
155         fi
157         cmake_src_configure
160 src_install() {
161         cmake_src_install
163         insinto /usr/share/${PN}
164         doins -r demo
166         #
167         # Install SWIG bindings
168         #
170         docinto swig
172         if use python; then
173                 dodoc "${S}"/src/swig/python/play.py
174                 python_optimize
175         fi