5 MASTER_SITES= http://qmmp.ylsoftware.com/files/${PORTNAME}/${PORTVERSION:R}/ \
6 SF/qmmp-dev/${PORTNAME}/${PORTVERSION:R}/
9 MAINTAINER= fluffy@FreeBSD.org
10 COMMENT= Qt5-based multimedia player
11 WWW= https://qmmp.ylsoftware.com/
14 LICENSE_FILE= ${WRKSRC}/COPYING
16 CONFLICTS= ${PORTNAME}-qt6
17 PORTSCOUT= limit:^1\..*
19 USES= cmake gnome pathfix pkgconfig tar:bzip2
20 USE_QT= core gui network widgets xml \
21 buildtools:build linguisttools:build qmake:build
27 OPTIONS_GROUP= DOCUMENTS PLUGIN_APPLICATION PLUGIN_FORMATS \
28 PLUGIN_DSP_EFFECTS PLUGIN_VISUAL_EFFECTS PLUGIN_OUTPUT \
29 PLUGIN_PLAYLIST PLUGIN_NETWORKING MISC
31 PLUGIN_APPLICATION_DESC= Main program view
32 OPTIONS_GROUP_PLUGIN_APPLICATION= GNOMEHOTKEY HISTORY HOTKEY KDENOTIFY \
33 NOTIFIER QMMP_DIALOG QSUI SKINNEDUI STATICON TWOPANELDIALOG
35 DOCUMENTS_DESC= Documentation and API Reference
36 OPTIONS_GROUP_DOCUMENTS= DOCS DOXYGEN
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
42 PLUGIN_DSP_EFFECTS_DESC= DSP effects
43 OPTIONS_GROUP_PLUGIN_DSP_EFFECTS= BS2B CROSSFADE LADSPA SOXR STEREO
45 PLUGIN_VISUAL_EFFECTS_DESC= Visual effects
46 OPTIONS_GROUP_PLUGIN_VISUAL_EFFECTS= ANALYZER PROJECTM
48 PLUGIN_OUTPUT_DESC= Output sound systems
49 OPTIONS_GROUP_PLUGIN_OUTPUT= ALSA JACK NULLOUT OSS OSS4 \
50 PIPEWIRE PULSEAUDIO QTMULTIMEDIA SHOUTCAST
52 PLUGIN_PLAYLIST_DESC= Playlist operation
53 OPTIONS_GROUP_PLUGIN_PLAYLIST= COPYPASTE DIR_ASSOC FILEOPS \
56 PLUGIN_NETWORKING_DESC= Features via the Net
57 OPTIONS_GROUP_PLUGIN_NETWORKING= COVER CURL LYRICS SB SCROBBLER
59 MISC_DESC= Other features
60 OPTIONS_GROUP_MISC= CONVERTER CUE ENCA FILEWRITER MPLAYER MPRIS RGSCAN SID
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
70 DOXYGEN_BUILD_DEPENDS= doxygen:devel/doxygen
72 QSUI_DESC= Simple UI based on standard widgets set
73 QSUI_CMAKE_BOOL= USE_QSUI
75 SKINNEDUI_DESC= Skinned GUI
76 SKINNEDUI_USES= qt:5 xorg
77 SKINNEDUI_USE= QT=x11extras XORG=x11
78 SKINNEDUI_CMAKE_BOOL= USE_SKINNED
80 DIR_ASSOC_DESC= inode/directory mime type association
81 DIR_ASSOC_CMAKE_BOOL= USE_DIR_ASSOC
82 DIR_ASSOC_USES= desktop-file-utils
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
89 ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
90 ALSA_CMAKE_BOOL= USE_ALSA
92 BS2B_DESC= Support the Bauer stereophonic2binaural effect
93 BS2B_LIB_DEPENDS= libbs2b.so:audio/libbs2b
94 BS2B_CMAKE_BOOL= USE_BS2B
96 HISTORY_DESC= Information about listened tracks
99 HISTORY_CMAKE_BOOL= USE_HISTORY
101 PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire
102 PIPEWIRE_CMAKE_BOOL= USE_PIPEWIRE
104 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
105 PULSEAUDIO_CMAKE_BOOL= USE_PULSE
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
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
118 FLAC_LIB_DEPENDS= libFLAC.so:audio/flac \
119 libtag.so:audio/taglib
120 FLAC_CMAKE_BOOL= USE_FLAC
122 MUSEPACK_LIB_DEPENDS= libmpcdec.so:audio/musepack \
123 libtag.so:audio/taglib
124 MUSEPACK_CMAKE_BOOL= USE_MPC
126 GME_DESC= Support video game music files
127 GME_LIB_DEPENDS= libgme.so:audio/libgme
128 GME_CMAKE_BOOL= USE_GME
130 FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
131 FFMPEG_CMAKE_BOOL= USE_FFMPEG
133 FAAD_LIB_DEPENDS= libfaad.so:audio/faad \
134 libtag.so:audio/taglib
135 FAAD_CMAKE_BOOL= USE_AAC
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
142 ENCA_DESC= Support automatic character set detection
143 ENCA_LIB_DEPENDS= libenca.so:converters/enca
144 ENCA_CMAKE_BOOL= USE_ENCA
146 FILEWRITER_DESC= Dump output sound into ogg audio file
147 FILEWRITER_LIB_DEPENDS= libvorbisenc.so:audio/libvorbis
148 FILEWRITER_CMAKE_BOOL= USE_FILEWRITER
150 MPLAYER_DESC= Enable showing videos by mplayer
151 MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer
152 MPLAYER_CMAKE_BOOL= USE_MPLAYER
154 PROJECTM_DESC= Support the projectM music visualiser
155 PROJECTM_LIB_DEPENDS= libprojectM.so:graphics/libprojectm
158 PROJECTM_CMAKE_BOOL= USE_PROJECTM
160 OSS_CMAKE_BOOL= USE_OSS
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
166 LADSPA_RUN_DEPENDS= analyseplugin:audio/ladspa
167 LADSPA_CMAKE_BOOL= USE_LADSPA
169 WILDMIDI_DESC= Support to playback MIDI files
170 WILDMIDI_LIB_DEPENDS= libWildMidi.so:audio/wildmidi
171 WILDMIDI_CMAKE_BOOL= USE_MIDI
173 MAD_LIB_DEPENDS= libmad.so:audio/libmad \
174 libtag.so:audio/taglib
175 MAD_CMAKE_BOOL= USE_MAD
177 MPG123_LIB_DEPENDS= libmpg123.so:audio/mpg123 \
178 libtag.so:audio/taglib
179 MPG123_CMAKE_BOOL= USE_MPG123
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
187 RGSCAN_DESC= ReplayGain scanner
188 RGSCAN_LIB_DEPENDS= libtag.so:audio/taglib
189 RGSCAN_CMAKE_BOOL= USE_RGSCAN
191 SNDFILE_LIB_DEPENDS= libsndfile.so:audio/libsndfile
192 SNDFILE_CMAKE_BOOL= USE_SNDFILE
194 VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis \
195 libogg.so:audio/libogg \
196 libtag.so:audio/taglib
197 VORBIS_CMAKE_BOOL= USE_VORBIS
199 WAVPACK_LIB_DEPENDS= libwavpack.so:audio/wavpack
200 WAVPACK_CMAKE_BOOL= USE_WAVPACK
202 XMP_DESC= Support various module formats using libxmp
203 XMP_LIB_DEPENDS= libxmp.so:audio/libxmp
204 XMP_CMAKE_BOOL= USE_XMP
206 CURL_LIB_DEPENDS= libcurl.so:ftp/curl
207 CURL_CMAKE_BOOL= USE_CURL
209 CUE_CMAKE_BOOL= USE_CUE
211 NULLOUT_DESC= Support null output
212 NULLOUT_CMAKE_BOOL= USE_NULL
214 SOXR_LIB_DEPENDS= libsoxr.so:audio/libsoxr
215 SOXR_CMAKE_BOOL= USE_SOXR
217 CROSSFADE_DESC= Support cross-fade effect
218 CROSSFADE_CMAKE_BOOL= USE_CROSSFADE
220 STEREO_DESC= Support stereo effect
221 STEREO_CMAKE_BOOL= USE_STEREO
223 ANALYZER_DESC= Support spectrum analyzer visualization
224 ANALYZER_CMAKE_BOOL= USE_ANALYZER
226 ARCHIVE_DESC= Read archived media file
227 ARCHIVE_USES= libarchive
228 ARCHIVE_CMAKE_BOOL= USE_ARCHIVE
230 CONVERTER_DESC= Support file type converter
231 CONVERTER_LIB_DEPENDS= libtag.so:audio/taglib
232 CONVERTER_CMAKE_BOOL= USE_CONVERTER
234 COPYPASTE_DESC= Enable copy/paste track infos between playlists
235 COPYPASTE_CMAKE_BOOL= USE_COPYPASTE
237 MPRIS_DESC= Support the Media Player Remote
240 MPRIS_CMAKE_BOOL= USE_MPRIS
242 SCROBBLER_DESC= Support Libre.fm/Last.fm scrobbler feature
243 SCROBBLER_CMAKE_BOOL= USE_SCROBBLER
245 SID_DESC= Support sid
246 SID_LIB_DEPENDS= libsidplayfp.so:audio/libsidplayfp
247 SID_CMAKE_BOOL= USE_SID
249 STATICON_DESC= Support to show status icon
250 STATICON_CMAKE_BOOL= USE_STATICON
252 SB_DESC= Browser for IceCast stream directory
253 SB_CMAKE_BOOL= USE_SB
255 NOTIFIER_DESC= Support to popup notifier
256 NOTIFIER_CMAKE_BOOL= USE_NOTIFIER
258 LYRICS_DESC= Support to show lyrics using lyrics.wikia.com
259 LYRICS_CMAKE_BOOL= USE_LYRICS
261 HOTKEY_DESC= Support global shortcut keys
263 HOTKEY_USE= QT=x11extras XORG=x11
264 HOTKEY_CMAKE_BOOL= USE_HOTKEY
266 GNOMEHOTKEY_DESC= Support GNOME/Cinnamon shortcut keys
267 GNOMEHOTKEY_USES= qt:5
268 GNOMEHOTKEY_USE= QT=dbus
269 GNOMEHOTKEY_CMAKE_BOOL= USE_GNOMEHOTKEY
271 FILEOPS_DESC= Support file operation
272 FILEOPS_CMAKE_BOOL= USE_FILEOPS
274 COVER_DESC= Support to show cover images
275 COVER_CMAKE_BOOL= USE_COVER
277 KDENOTIFY_DESC= Support to popup notifier for KDE
279 KDENOTIFY_USE= QT=dbus
280 KDENOTIFY_CMAKE_BOOL= USE_KDENOTIFY
282 TRACKCHANGE_DESC= Enable to run external command each track
283 TRACKCHANGE_CMAKE_BOOL= USE_TRACKCHANGE
285 UDISKS_DESC= Support removable disc detection using UDisks
286 UDISKS_RUN_DEPENDS= bsdisks:sysutils/bsdisks
289 UDISKS_CMAKE_BOOL= USE_UDISKS
291 QMMP_DIALOG_DESC= An original dialog
292 QMMP_DIALOG_CMAKE_BOOL= USE_QMMP_DIALOG
294 TWOPANELDIALOG_DESC= File dialog by two-panel selector
295 TWOPANELDIALOG_CMAKE_BOOL= USE_TWO_PANEL_DIALOG
297 PLIST_SUB+= SHLIB_VER=${PORTVERSION:C/-.*//} LIB_SUFFX=-${PORTVERSION:R} BIN_SUFFX=-${PORTVERSION:R:R}
299 PATHFIX_CMAKELISTSTXT= \\"CMakeLists.txt -exec grep -l /pkgconfig {} +\\"
300 PORTDOCS= README README.RUS AUTHORS
302 .include <bsd.port.options.mk>
304 .if (${PORT_OPTIONS:MMAD} || ${PORT_OPTIONS:MMPG123})
307 PLIST_SUB+= MPEG="@comment "
311 @${GREP} -L '${LOCALBASE}/lib/oss' \
312 ${WRKSRC}/src/plugins/Output/oss4/CMakeLists.txt | ${XARGS} \
313 ${REINPLACE_CMD} -e 's|/usr/local/|${LOCALBASE}/|'
316 @${RM} ${BUILD_WRKSRC}/CMakeCache.txt
318 post-build-DOXYGEN-on:
319 cd ${WRKSRC}/doc && doxygen Doxyfile
321 post-install-DOCS-on:
322 @${MKDIR} ${STAGEDIR}${DOCSDIR}; \
323 cd ${WRKSRC} && ${INSTALL_MAN} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
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}
331 .include <bsd.port.mk>