1 PORTNAME= ${_MLT_PORTNAME}
2 DISTVERSION= ${_MLT_VERSION}
4 CATEGORIES?= multimedia
5 # Don't use GitHub "fake" downloads that are auto-generated from a
6 # tag; the project uploads tarballs for each release.
7 # https://github.com/mltframework/mlt/releases/download/v6.26.1/mlt-6.26.1.tar.gz
8 MASTER_SITES= https://github.com/mltframework/mlt/releases/download/v${DISTVERSION}/
9 DISTFILES= mlt-${DISTVERSION}${EXTRACT_SUFX}
10 WRKSRC= ${WRKDIR}/mlt-${DISTVERSION}
12 PATCH_SITES= https://github.com/mltframework/mlt/commit/
13 PATCHFILES= 77be3ee97453c194006df9080504492a67c8915b.patch:-p1 # Shotcut export bug #1442
15 MAINTAINER= kde@FreeBSD.org
16 COMMENT?= Multimedia framework for TV broadcasting
17 WWW= https://www.mltframework.org/
19 LICENSE?= GPLv2 GPLv3 LGPL21
22 USES+= alias cmake compiler:c++11-lang eigen:3 localbase pkgconfig
25 DATADIR= ${PREFIX}/share/mlt-7
27 .ifndef(SLAVEPORT) # Master port.
28 BROKEN_sparc64= does not compile on sparc64 (invokes i386 asm)
30 USES+= gnome mlt:7,nodepend
35 # Explicitly disabled modules that are ouddated, unnecessary, or have
37 CMAKE_OFF= MOD_GLAXNIMATE MOD_GLAXNIMATE_QT6 MOD_SDL1 MOD_QT \
39 SWIG_CSHARP SWIG_JAVA SWIG_LUA SWIG_NODEJS SWIG_PERL \
40 SWIG_PHP SWIG_PYTHON SWIG_RUBY SWIG_TCL
42 PORTDOCS= AUTHORS NEWS
45 OPTIONS_DEFINE= DOCS EXAMPLES
46 OPTIONS_DEFAULT= AVFORMAT FREI0R GDK MOVIT KDENLIVE NORMALIZE PLUS PLUSGPL RESAMPLE SDL2 SOX \
49 OPTIONS_GROUP= MODULES
50 OPTIONS_GROUP_MODULES= AVFORMAT DECKLINK FREI0R GDK JACKRACK KDENLIVE MOVIT NORMALIZE \
51 OLDFILM OPENCV PLUS PLUSGPL RESAMPLE RTAUDIO RUBBERBAND SDL2 \
52 SOX VIDSTAB VORBIS XINE
55 AVFORMAT_DESC= Enable avformat module
56 AVFORMAT_LIB_DEPENDS= libavformat.so:multimedia/ffmpeg
57 AVFORMAT_CMAKE_BOOL= MOD_AVFORMAT
59 DECKLINK_DESC= Enable decklink module
60 DECKLINK_CMAKE_BOOL= MOD_DECKLINK
62 FREI0R_DESC= Enable frei0r module
63 FREI0R_BUILD_DEPENDS= ${LOCALBASE}/include/frei0r.h:graphics/frei0r
64 FREI0R_CMAKE_BOOL= MOD_FREI0R
66 GDK_DESC= Enable gdk module
67 GDK_LIB_DEPENDS= libexif.so:graphics/libexif \
68 libfontconfig.so:x11-fonts/fontconfig \
69 libfreetype.so:print/freetype2 \
70 libharfbuzz.so:print/harfbuzz
71 GDK_USE= gnome=gdkpixbuf2,pango
72 GDK_CMAKE_BOOL= MOD_GDK
74 JACKRACK_DESC= Enable jackrack module
75 JACKRACK_BUILD_DEPENDS= ${LOCALBASE}/include/ladspa.h:audio/ladspa
76 JACKRACK_LIB_DEPENDS= libjack.so:audio/jack
77 JACKRACK_USE= gnome=glib20
78 JACKRACK_CMAKE_BOOL= MOD_JACKRACK
80 KDENLIVE_DESC= Enable kdenlive module
81 KDENLIVE_CMAKE_BOOL= MOD_KDENLIVE
83 MOVIT_DESC= Enable OpenGL module
85 MOVIT_USE= gl=opengl xorg=x11
86 MOVIT_LIB_DEPENDS= libmovit.so:graphics/movit \
87 libepoxy.so:graphics/libepoxy
88 MOVIT_CMAKE_BOOL= MOD_MOVIT
90 NORMALIZE_DESC= Enable normalize module
91 NORMALIZE_CMAKE_BOOL= MOD_NORMALIZE
93 OLDFILM_DESC= Enable oldfilm module
94 OLDFILM_CMAKE_BOOL= MOD_OLDFILM
96 OPENCV_DESC= Enable OpenCV module
97 OPENCV_LIB_DEPENDS= libopencv_core.so:graphics/opencv
98 OPENCV_CMAKE_BOOL= MOD_OPENCV
100 OPENGL_DESC= Enable OpenGL module
101 OPENGL_CMAKE_BOOL= MOD_OPENGL
102 OPENGL_LIB_DEPENDS= libepoxy.so:graphics/libepoxy \
103 libmovit.so:graphics/movit
105 OPENGL_USE= gl=gl xorg=x11
107 PLUSGPL_DESC= Enable plus GPL module
108 PLUSGPL_CMAKE_BOOL= MOD_PLUSGPL
110 PLUS_DESC= Enable plus module
111 PLUS_LIB_DEPENDS= libfftw3.so:math/fftw3
112 PLUS_CMAKE_BOOL= MOD_PLUS
114 RESAMPLE_DESC= Enable resample module
115 RESAMPLE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
116 RESAMPLE_CMAKE_BOOL= MOD_RESAMPLE
118 RTAUDIO_DESC= Enable RtAudio module
119 RTAUDIO_LIB_DEPENDS= librtaudio.so:audio/rtaudio \
120 libpulse-simple.so:audio/pulseaudio
121 RTAUDIO_CMAKE_BOOL= MOD_RTAUDIO
123 RUBBERBAND_DESC= Enable rubberband module
124 RUBBERBAND_LIB_DEPENDS= librubberband.so:audio/rubberband
125 RUBBERBAND_CMAKE_BOOL= MOD_RUBBERBAND
127 SDL2_DESC= Enable SDL2 module
130 SDL2_CMAKE_BOOL= MOD_SDL2
132 SOX_DESC= Enable SoX module
133 SOX_LIB_DEPENDS= libsox.so:audio/sox
134 SOX_CMAKE_BOOL= MOD_SOX
136 VIDSTAB_DESC= Enable vid.stab module
137 VIDSTAB_LIB_DEPENDS= libvidstab.so:multimedia/vid.stab
138 VIDSTAB_CMAKE_BOOL= MOD_VIDSTAB
140 VORBIS_DESC= Enable Vorbis module
141 VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis libogg.so:audio/libogg
142 VORBIS_CMAKE_BOOL= MOD_VORBIS
144 XINE_DESC= Enable xine module
145 XINE_CMAKE_BOOL= MOD_XINE
148 ${RM} ${STAGEDIR}${PREFIX}/man/man1/melt.1
149 @${REINPLACE_CMD} -e 's,/usr/local,${LOCALBASE},' \
150 ${WRKSRC}/src/modules/frei0r/factory.c \
151 ${WRKSRC}/src/modules/jackrack/plugin_mgr.c
154 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/melt-7
155 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmlt-7.so.${PORTVERSION}
156 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmlt++-7.so.${PORTVERSION}
158 post-install-DOCS-on:
159 .for f in ${PORTDOCS}
160 cd ${WRKSRC} && ${COPYTREE_SHARE} ${f} ${STAGEDIR}${DOCSDIR}
163 post-install-EXAMPLES-on:
164 .for f in ${PORTEXAMPLES}
165 cd ${WRKSRC} && ${COPYTREE_SHARE} ${f} ${STAGEDIR}${EXAMPLESDIR}
171 # Depend on multimedia/mlt7 for child ports
173 PLIST?= ${.CURDIR}/pkg-plist
175 INSTALL_WRKSRC?= ${BUILD_WRKSRC}
178 post-install: common-post-install
179 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/* 2>/dev/null || ${TRUE}
180 @${RMDIR} -p ${STAGEDIR}${PREFIX}/lib/${PORTNAME} 2>/dev/null || ${TRUE}
182 .include <bsd.port.mk>