Tweak multimedia/kaffeine version 2.0.18_5
[dports.git] / multimedia / qmmp-qt5 / Makefile
1 PORTNAME=       qmmp
2 PORTVERSION=    1.6.4
3 PORTREVISION=   1
4 CATEGORIES=     multimedia
5 MASTER_SITES=   http://qmmp.ylsoftware.com/files/${PORTNAME}/${PORTVERSION:R}/ \
6         SF/qmmp-dev/${PORTNAME}/${PORTVERSION:R}/
7 PKGNAMESUFFIX=  -qt5
8
9 MAINTAINER=     fluffy@FreeBSD.org
10 COMMENT=        Qt5-based multimedia player
11 WWW=            https://qmmp.ylsoftware.com/
12
13 LICENSE=        GPLv2
14 LICENSE_FILE=   ${WRKSRC}/COPYING
15
16 CONFLICTS=      ${PORTNAME}-qt6
17 PORTSCOUT=      limit:^1\..*
18
19 USES=           cmake gnome pathfix pkgconfig tar:bzip2
20 USE_QT=         core gui network widgets xml \
21                 buildtools:build linguisttools:build qmake:build
22 USE_LDCONFIG=   yes
23
24 CMAKE_OFF=      USE_MMS
25
26 OPTIONS_SUB=    yes
27 OPTIONS_GROUP=  DOCUMENTS PLUGIN_APPLICATION PLUGIN_FORMATS \
28                 PLUGIN_DSP_EFFECTS PLUGIN_VISUAL_EFFECTS PLUGIN_OUTPUT \
29                 PLUGIN_PLAYLIST PLUGIN_NETWORKING MISC
30
31 PLUGIN_APPLICATION_DESC=        Main program view
32 OPTIONS_GROUP_PLUGIN_APPLICATION=       GNOMEHOTKEY HISTORY HOTKEY KDENOTIFY \
33                 NOTIFIER QMMP_DIALOG QSUI SKINNEDUI STATICON TWOPANELDIALOG
34
35 DOCUMENTS_DESC= Documentation and API Reference
36 OPTIONS_GROUP_DOCUMENTS=        DOCS DOXYGEN
37
38 PLUGIN_FORMATS_DESC=    Support various media formats
39 OPTIONS_GROUP_PLUGIN_FORMATS=   ARCHIVE CDDA FAAD FFMPEG FLAC GME \
40                 MAD MPG123 MUSEPACK OPUS SNDFILE VORBIS WAVPACK WILDMIDI XMP
41
42 PLUGIN_DSP_EFFECTS_DESC=        DSP effects
43 OPTIONS_GROUP_PLUGIN_DSP_EFFECTS=       BS2B CROSSFADE LADSPA SOXR STEREO
44
45 PLUGIN_VISUAL_EFFECTS_DESC=     Visual effects
46 OPTIONS_GROUP_PLUGIN_VISUAL_EFFECTS=    ANALYZER PROJECTM
47
48 PLUGIN_OUTPUT_DESC=     Output sound systems
49 OPTIONS_GROUP_PLUGIN_OUTPUT=    ALSA JACK NULLOUT OSS OSS4 \
50                 PIPEWIRE PULSEAUDIO QTMULTIMEDIA SHOUTCAST
51
52 PLUGIN_PLAYLIST_DESC=   Playlist operation
53 OPTIONS_GROUP_PLUGIN_PLAYLIST=  COPYPASTE DIR_ASSOC FILEOPS \
54                 TRACKCHANGE UDISKS
55
56 PLUGIN_NETWORKING_DESC= Features via the Net
57 OPTIONS_GROUP_PLUGIN_NETWORKING=        COVER CURL LYRICS SB SCROBBLER
58
59 MISC_DESC=      Other features
60 OPTIONS_GROUP_MISC=     CONVERTER CUE ENCA FILEWRITER MPLAYER MPRIS RGSCAN SID
61
62 OPTIONS_DEFAULT=        ALSA ANALYZER ARCHIVE BS2B CDDA CONVERTER COPYPASTE COVER \
63                 CROSSFADE CUE CURL DIR_ASSOC ENCA FFMPEG FILEOPS FILEWRITER FLAC \
64                 GNOMEHOTKEY GME HISTORY HOTKEY JACK KDENOTIFY LADSPA LYRICS \
65                 MPRIS MPLAYER MUSEPACK NOTIFIER NULLOUT \
66                 OPUS OSS4 PIPEWIRE PROJECTM PULSEAUDIO QMMP_DIALOG QSUI QTMULTIMEDIA RGSCAN \
67                 SHOUTCAST SB SCROBBLER SID SKINNEDUI SNDFILE SOXR STATICON STEREO \
68                 TRACKCHANGE TWOPANELDIALOG UDISKS VORBIS WAVPACK WILDMIDI XMP
69
70 DOXYGEN_BUILD_DEPENDS=  doxygen:devel/doxygen
71
72 QSUI_DESC=      Simple UI based on standard widgets set
73 QSUI_CMAKE_BOOL=        USE_QSUI
74
75 SKINNEDUI_DESC= Skinned GUI
76 SKINNEDUI_USES= qt:5 xorg
77 SKINNEDUI_USE=  QT=x11extras XORG=x11
78 SKINNEDUI_CMAKE_BOOL=   USE_SKINNED
79
80 DIR_ASSOC_DESC= inode/directory mime type association
81 DIR_ASSOC_CMAKE_BOOL=   USE_DIR_ASSOC
82 DIR_ASSOC_USES= desktop-file-utils
83
84 JACK_LIB_DEPENDS=       libjack.so:audio/jack \
85                 libsoxr.so:audio/libsoxr
86 JACK_BUILD_DEPENDS=     jackit>=0.121.2:audio/jack
87 JACK_CMAKE_BOOL=        USE_JACK
88
89 ALSA_LIB_DEPENDS=       libasound.so:audio/alsa-lib
90 ALSA_CMAKE_BOOL=        USE_ALSA
91
92 BS2B_DESC=              Support the Bauer stereophonic2binaural effect
93 BS2B_LIB_DEPENDS=       libbs2b.so:audio/libbs2b
94 BS2B_CMAKE_BOOL=        USE_BS2B
95
96 HISTORY_DESC=   Information about listened tracks
97 HISTORY_USES=   qt:5
98 HISTORY_USE=    QT=sql
99 HISTORY_CMAKE_BOOL=     USE_HISTORY
100
101 PIPEWIRE_LIB_DEPENDS=   libpipewire-0.3.so:multimedia/pipewire
102 PIPEWIRE_CMAKE_BOOL=    USE_PIPEWIRE
103
104 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
105 PULSEAUDIO_CMAKE_BOOL=  USE_PULSE
106
107 QTMULTIMEDIA_DESC=      Support to use Qt low-level multimedia API
108 QTMULTIMEDIA_USES=      qt:5
109 QTMULTIMEDIA_USE=       QT=multimedia
110 QTMULTIMEDIA_CMAKE_BOOL=        USE_QTMULTIMEDIA
111
112 SHOUTCAST_LIB_DEPENDS=  libogg.so:audio/libogg \
113                 libshout.so:audio/libshout \
114                 libsoxr.so:audio/libsoxr \
115                 libvorbis.so:audio/libvorbis
116 SHOUTCAST_CMAKE_BOOL=   USE_SHOUT
117
118 FLAC_LIB_DEPENDS=       libFLAC.so:audio/flac \
119                 libtag.so:audio/taglib
120 FLAC_CMAKE_BOOL=        USE_FLAC
121
122 MUSEPACK_LIB_DEPENDS=   libmpcdec.so:audio/musepack \
123                 libtag.so:audio/taglib
124 MUSEPACK_CMAKE_BOOL=    USE_MPC
125
126 GME_DESC=               Support video game music files
127 GME_LIB_DEPENDS=        libgme.so:audio/libgme
128 GME_CMAKE_BOOL= USE_GME
129
130 FFMPEG_LIB_DEPENDS=     libavcodec.so:multimedia/ffmpeg
131 FFMPEG_CMAKE_BOOL=      USE_FFMPEG
132
133 FAAD_LIB_DEPENDS=       libfaad.so:audio/faad \
134                 libtag.so:audio/taglib
135 FAAD_CMAKE_BOOL=        USE_AAC
136
137 CDDA_LIB_DEPENDS=       libcdio.so:sysutils/libcdio \
138                 libcddb.so:audio/libcddb \
139                 libcdio_cdda.so:sysutils/libcdio-paranoia
140 CDDA_CMAKE_BOOL=        USE_CDA
141
142 ENCA_DESC=              Support automatic character set detection
143 ENCA_LIB_DEPENDS=       libenca.so:converters/enca
144 ENCA_CMAKE_BOOL=        USE_ENCA
145
146 FILEWRITER_DESC=        Dump output sound into ogg audio file
147 FILEWRITER_LIB_DEPENDS= libvorbisenc.so:audio/libvorbis
148 FILEWRITER_CMAKE_BOOL=  USE_FILEWRITER
149
150 MPLAYER_DESC=   Enable showing videos by mplayer
151 MPLAYER_RUN_DEPENDS=    mplayer:multimedia/mplayer
152 MPLAYER_CMAKE_BOOL=     USE_MPLAYER
153
154 PROJECTM_DESC=  Support the projectM music visualiser
155 PROJECTM_LIB_DEPENDS=   libprojectM.so:graphics/libprojectm
156 PROJECTM_USES=          gl
157 PROJECTM_USE=           GL=gl
158 PROJECTM_CMAKE_BOOL=    USE_PROJECTM
159
160 OSS_CMAKE_BOOL= USE_OSS
161
162 OSS4_DESC=              Open Sound System (ver4) support
163 OSS4_BUILD_DEPENDS=     ${LOCALBASE}/lib/oss/include/sys/soundcard.h:audio/oss
164 OSS4_CMAKE_BOOL=        USE_OSS4
165
166 LADSPA_RUN_DEPENDS=     analyseplugin:audio/ladspa
167 LADSPA_CMAKE_BOOL=      USE_LADSPA
168
169 WILDMIDI_DESC=  Support to playback MIDI files
170 WILDMIDI_LIB_DEPENDS=   libWildMidi.so:audio/wildmidi
171 WILDMIDI_CMAKE_BOOL=    USE_MIDI
172
173 MAD_LIB_DEPENDS=        libmad.so:audio/libmad \
174                 libtag.so:audio/taglib
175 MAD_CMAKE_BOOL= USE_MAD
176
177 MPG123_LIB_DEPENDS=     libmpg123.so:audio/mpg123 \
178                 libtag.so:audio/taglib
179 MPG123_CMAKE_BOOL=      USE_MPG123
180
181 OPUS_DESC=              Enable reading opusfile tags
182 OPUS_LIB_DEPENDS=       libopusfile.so:audio/opusfile \
183                 libopus.so:audio/opus \
184                 libtag.so:audio/taglib
185 OPUS_CMAKE_BOOL=        USE_OPUS
186
187 RGSCAN_DESC=    ReplayGain scanner
188 RGSCAN_LIB_DEPENDS=     libtag.so:audio/taglib
189 RGSCAN_CMAKE_BOOL=      USE_RGSCAN
190
191 SNDFILE_LIB_DEPENDS=    libsndfile.so:audio/libsndfile
192 SNDFILE_CMAKE_BOOL=     USE_SNDFILE
193
194 VORBIS_LIB_DEPENDS=     libvorbis.so:audio/libvorbis \
195                 libogg.so:audio/libogg \
196                 libtag.so:audio/taglib
197 VORBIS_CMAKE_BOOL=      USE_VORBIS
198
199 WAVPACK_LIB_DEPENDS=    libwavpack.so:audio/wavpack
200 WAVPACK_CMAKE_BOOL=     USE_WAVPACK
201
202 XMP_DESC=               Support various module formats using libxmp
203 XMP_LIB_DEPENDS=        libxmp.so:audio/libxmp
204 XMP_CMAKE_BOOL= USE_XMP
205
206 CURL_LIB_DEPENDS=       libcurl.so:ftp/curl
207 CURL_CMAKE_BOOL=        USE_CURL
208
209 CUE_CMAKE_BOOL= USE_CUE
210
211 NULLOUT_DESC=   Support null output
212 NULLOUT_CMAKE_BOOL=     USE_NULL
213
214 SOXR_LIB_DEPENDS=       libsoxr.so:audio/libsoxr
215 SOXR_CMAKE_BOOL=        USE_SOXR
216
217 CROSSFADE_DESC= Support cross-fade effect
218 CROSSFADE_CMAKE_BOOL=   USE_CROSSFADE
219
220 STEREO_DESC=    Support stereo effect
221 STEREO_CMAKE_BOOL=      USE_STEREO
222
223 ANALYZER_DESC=  Support spectrum analyzer visualization
224 ANALYZER_CMAKE_BOOL=    USE_ANALYZER
225
226 ARCHIVE_DESC=   Read archived media file
227 ARCHIVE_USES=   libarchive
228 ARCHIVE_CMAKE_BOOL=     USE_ARCHIVE
229
230 CONVERTER_DESC= Support file type converter
231 CONVERTER_LIB_DEPENDS=  libtag.so:audio/taglib
232 CONVERTER_CMAKE_BOOL=   USE_CONVERTER
233
234 COPYPASTE_DESC= Enable copy/paste track infos between playlists
235 COPYPASTE_CMAKE_BOOL=   USE_COPYPASTE
236
237 MPRIS_DESC=     Support the Media Player Remote
238 MPRIS_USES=     qt:5
239 MPRIS_USE=      QT=dbus
240 MPRIS_CMAKE_BOOL=       USE_MPRIS
241
242 SCROBBLER_DESC= Support Libre.fm/Last.fm scrobbler feature
243 SCROBBLER_CMAKE_BOOL=   USE_SCROBBLER
244
245 SID_DESC=       Support sid
246 SID_LIB_DEPENDS=        libsidplayfp.so:audio/libsidplayfp
247 SID_CMAKE_BOOL= USE_SID
248
249 STATICON_DESC=  Support to show status icon
250 STATICON_CMAKE_BOOL=    USE_STATICON
251
252 SB_DESC=        Browser for IceCast stream directory
253 SB_CMAKE_BOOL=  USE_SB
254
255 NOTIFIER_DESC=  Support to popup notifier
256 NOTIFIER_CMAKE_BOOL=    USE_NOTIFIER
257
258 LYRICS_DESC=    Support to show lyrics using lyrics.wikia.com
259 LYRICS_CMAKE_BOOL=      USE_LYRICS
260
261 HOTKEY_DESC=    Support global shortcut keys
262 HOTKEY_USES=    qt:5
263 HOTKEY_USE=     QT=x11extras XORG=x11
264 HOTKEY_CMAKE_BOOL=      USE_HOTKEY
265
266 GNOMEHOTKEY_DESC=       Support GNOME/Cinnamon shortcut keys
267 GNOMEHOTKEY_USES=       qt:5
268 GNOMEHOTKEY_USE=        QT=dbus
269 GNOMEHOTKEY_CMAKE_BOOL= USE_GNOMEHOTKEY
270
271 FILEOPS_DESC=   Support file operation
272 FILEOPS_CMAKE_BOOL=     USE_FILEOPS
273
274 COVER_DESC=     Support to show cover images
275 COVER_CMAKE_BOOL=       USE_COVER
276
277 KDENOTIFY_DESC= Support to popup notifier for KDE
278 KDENOTIFY_USES= qt:5
279 KDENOTIFY_USE=  QT=dbus
280 KDENOTIFY_CMAKE_BOOL=   USE_KDENOTIFY
281
282 TRACKCHANGE_DESC=       Enable to run external command each track
283 TRACKCHANGE_CMAKE_BOOL= USE_TRACKCHANGE
284
285 UDISKS_DESC=    Support removable disc detection using UDisks
286 UDISKS_RUN_DEPENDS=     bsdisks:sysutils/bsdisks
287 UDISKS_USES=    qt:5
288 UDISKS_USE=     QT=dbus
289 UDISKS_CMAKE_BOOL=      USE_UDISKS
290
291 QMMP_DIALOG_DESC=       An original dialog
292 QMMP_DIALOG_CMAKE_BOOL= USE_QMMP_DIALOG
293
294 TWOPANELDIALOG_DESC=    File dialog by two-panel selector
295 TWOPANELDIALOG_CMAKE_BOOL=      USE_TWO_PANEL_DIALOG
296
297 PLIST_SUB+=     SHLIB_VER=${PORTVERSION:C/-.*//} LIB_SUFFX=-${PORTVERSION:R} BIN_SUFFX=-${PORTVERSION:R:R}
298
299 PATHFIX_CMAKELISTSTXT=  \\"CMakeLists.txt -exec grep -l /pkgconfig {} +\\"
300 PORTDOCS=       README README.RUS AUTHORS
301
302 .include <bsd.port.options.mk>
303
304 .if (${PORT_OPTIONS:MMAD} || ${PORT_OPTIONS:MMPG123})
305 PLIST_SUB+=     MPEG=""
306 .else
307 PLIST_SUB+=     MPEG="@comment "
308 .endif
309
310 post-patch:
311         @${GREP} -L '${LOCALBASE}/lib/oss' \
312                 ${WRKSRC}/src/plugins/Output/oss4/CMakeLists.txt | ${XARGS} \
313                 ${REINPLACE_CMD} -e 's|/usr/local/|${LOCALBASE}/|'
314
315 pre-configure:
316         @${RM} ${BUILD_WRKSRC}/CMakeCache.txt
317
318 post-build-DOXYGEN-on:
319         cd ${WRKSRC}/doc && doxygen Doxyfile
320
321 post-install-DOCS-on:
322         @${MKDIR} ${STAGEDIR}${DOCSDIR}; \
323                 cd ${WRKSRC} && ${INSTALL_MAN} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
324
325 post-install-DOXYGEN-on:
326         cd ${WRKSRC}/doc/html && \
327                 ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/html
328         @${FIND} -P ${STAGEDIR}${DOCSDIR}/html -type f 2>/dev/null | \
329                 ${SED} -ne 's|^${STAGEDIR}${PREFIX}/||p' >> ${TMPPLIST}
330
331 .include <bsd.port.mk>