summaryrefslogtreecommitdiff
path: root/multimedia/qmmp-qt5/Makefile
blob: 4a578c6d2ec5f507465d7d20cd34b78d49a9260a (plain) (blame)
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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
PORTNAME=	qmmp
PORTVERSION=	1.7.8
CATEGORIES=	multimedia
MASTER_SITES=	http://qmmp.ylsoftware.com/files/${PORTNAME}/${DISTVERSION:R}/ \
		SF/qmmp-dev/${PORTNAME}/${DISTVERSION:R}/
PKGNAMESUFFIX=	-qt5

MAINTAINER=	fluffy@FreeBSD.org
COMMENT=	Qt5-based multimedia player
WWW=		https://qmmp.ylsoftware.com/

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/COPYING

USES=		cmake desktop-file-utils gl gnome iconv:wchar_t pathfix \
		pkgconfig qt:5 tar:bzip2 xorg
USE_GL=		opengl
PATHFIX_CMAKELISTSTXT=	src/qmmpui/CMakeLists.txt src/qmmp/CMakeLists.txt
USE_QT=		core dbus gui network sql widgets x11extras xml \
		buildtools:build linguisttools:build qmake:build
USE_XORG=	x11 xcb
USE_LDCONFIG=	yes

CONFLICTS=	${PORTNAME}-qt6
PORTSCOUT=	limit:^1\..*

PLIST_SUB=	SHLIB_VER=${DISTVERSION:C/-.*//} \
		LIB_SUFFX=-${DISTVERSION:R} \
		BIN_SUFFX=-${DISTVERSION:R:R}

PORTDOCS=	README README.RUS AUTHORS

CMAKE_OFF=	USE_CDA \
		USE_MAD \
		USE_MMS \
		USE_MPC \
		USE_MPLAYER
CMAKE_ON=	USE_ANALYZER \
		USE_COPYPASTE \
		USE_COVER \
		USE_CROSSFADE \
		USE_CUE \
		USE_DIR_ASSOC \
		USE_FILEOPS \
		USE_GNOMEHOTKEY \
		USE_HISTORY \
		USE_KDENOTIFY \
		USE_HOTKEY \
		USE_MPRIS \
		USE_NOTIFIER \
		USE_NULL \
		USE_SKINNED \
		USE_STATICON \
		USE_STEREO \
		USE_TRACKCHANGE

OPTIONS_SUB=	yes
OPTIONS_GROUP=	DOCUMENTS PLUGIN_APPLICATION PLUGIN_FORMATS \
		PLUGIN_DSP_EFFECTS PLUGIN_VISUAL_EFFECTS PLUGIN_OUTPUT \
		PLUGIN_PLAYLIST PLUGIN_NETWORKING MISC

OPTIONS_GROUP_DOCUMENTS=		DOCS DOXYGEN

OPTIONS_GROUP_MISC=			CONVERTER ENCA FILEWRITER \
					RGSCAN SID

OPTIONS_GROUP_PLUGIN_APPLICATION=	QMMP_DIALOG QSUI TWOPANELDIALOG

OPTIONS_GROUP_PLUGIN_DSP_EFFECTS=	BS2B LADSPA SOXR

OPTIONS_GROUP_PLUGIN_FORMATS=		ARCHIVE FAAD FFMPEG FLAC GME \
					MPG123 OPUS SNDFILE \
					VORBIS WAVPACK WILDMIDI XMP

OPTIONS_GROUP_PLUGIN_NETWORKING=	CURL LYRICS SB SCROBBLER

OPTIONS_GROUP_PLUGIN_OUTPUT=		ALSA JACK OSS OSS4 \
					PIPEWIRE PULSEAUDIO QTMULTIMEDIA SHOUTCAST

OPTIONS_GROUP_PLUGIN_PLAYLIST=		UDISKS

OPTIONS_GROUP_PLUGIN_VISUAL_EFFECTS=	PROJECTM

OPTIONS_DEFAULT=	ALSA ARCHIVE BS2B CONVERTER CURL ENCA \
			FFMPEG FILEWRITER FLAC GME JACK LADSPA \
			LYRICS OPUS OSS4 PROJECTM PIPEWIRE \
			PULSEAUDIO QMMP_DIALOG QSUI RGSCAN SHOUTCAST SB \
			SCROBBLER SID SNDFILE SOXR TWOPANELDIALOG \
			UDISKS VORBIS WAVPACK WILDMIDI XMP

OPTIONS_EXCLUDE_i386=	ARCHIVE

ARCHIVE_DESC=			Read archived media file
BS2B_DESC=			Support the Bauer stereophonic2binaural effect
CONVERTER_DESC=			Support file type converter
DOCUMENTS_DESC=			Documentation and API Reference
ENCA_DESC=			Support automatic character set detection
FILEWRITER_DESC=		Dump output sound into ogg audio file
GME_DESC=			Support video game music files
LYRICS_DESC=			Support to show lyrics using lyrics.wikia.com
MISC_DESC=			Other features
OPUS_DESC=			Enable reading opusfile tags
OSS4_DESC=			Open Sound System (ver4) support
PLUGIN_APPLICATION_DESC=	Main program view
PLUGIN_DSP_EFFECTS_DESC=	DSP effects
PLUGIN_FORMATS_DESC=		Support various media formats
PLUGIN_NETWORKING_DESC=		Features via the Net
PLUGIN_OUTPUT_DESC=		Output sound systems
PLUGIN_PLAYLIST_DESC=		Playlist operation
PLUGIN_VISUAL_EFFECTS_DESC=	Visual effects
PROJECTM_DESC=			Support the projectM music visualiser
QMMP_DIALOG_DESC=		An original dialog
QSUI_DESC=			Simple UI based on standard widgets set
QTMULTIMEDIA_DESC=		Support to use Qt low-level multimedia API
RGSCAN_DESC=			ReplayGain scanner
SB_DESC=			Browser for IceCast stream directory
SCROBBLER_DESC=			Support Libre.fm/Last.fm scrobbler feature
SID_DESC=			Support sid
TWOPANELDIALOG_DESC=		File dialog by two-panel selector
UDISKS_DESC=			Support removable disc detection using UDisks
WILDMIDI_DESC=			Support to playback MIDI files
XMP_DESC=			Support various module formats using libxmp

ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
ALSA_CMAKE_BOOL=	USE_ALSA

ARCHIVE_USES=		libarchive
ARCHIVE_CMAKE_BOOL=	USE_ARCHIVE

BS2B_LIB_DEPENDS=	libbs2b.so:audio/libbs2b
BS2B_CMAKE_BOOL=	USE_BS2B

CONVERTER_LIB_DEPENDS=	libtag.so:audio/taglib
CONVERTER_CMAKE_BOOL=	USE_CONVERTER

CURL_LIB_DEPENDS=	libcurl.so:ftp/curl
CURL_CMAKE_BOOL=	USE_CURL

DOXYGEN_BUILD_DEPENDS=	doxygen:devel/doxygen

ENCA_LIB_DEPENDS=	libenca.so:converters/enca
ENCA_CMAKE_BOOL=	USE_ENCA

FAAD_LIB_DEPENDS=	libfaad.so:audio/faad \
			libtag.so:audio/taglib
FAAD_CMAKE_BOOL=	USE_AAC

FFMPEG_LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg
FFMPEG_CMAKE_BOOL=	USE_FFMPEG

FILEWRITER_LIB_DEPENDS=	libvorbisenc.so:audio/libvorbis
FILEWRITER_CMAKE_BOOL=	USE_FILEWRITER

FLAC_LIB_DEPENDS=	libFLAC.so:audio/flac \
			libtag.so:audio/taglib
FLAC_CMAKE_BOOL=	USE_FLAC

GME_LIB_DEPENDS=	libgme.so:audio/libgme
GME_CMAKE_BOOL=		USE_GME

JACK_BUILD_DEPENDS=	jackit>=0.121.2:audio/jack
JACK_LIB_DEPENDS=	libjack.so:audio/jack \
			libsoxr.so:audio/libsoxr
JACK_CMAKE_BOOL=	USE_JACK

LADSPA_RUN_DEPENDS=	analyseplugin:audio/ladspa
LADSPA_CMAKE_BOOL=	USE_LADSPA

LYRICS_CMAKE_BOOL=	USE_LYRICS

MPG123_LIB_DEPENDS=	libmpg123.so:audio/mpg123 \
			libtag.so:audio/taglib
MPG123_CMAKE_BOOL=	USE_MPG123

OPUS_LIB_DEPENDS=	libopusfile.so:audio/opusfile \
			libopus.so:audio/opus \
			libtag.so:audio/taglib
OPUS_CMAKE_BOOL=	USE_OPUS

OSS_CMAKE_BOOL=		USE_OSS

OSS4_BUILD_DEPENDS=	${LOCALBASE}/lib/oss/include/sys/soundcard.h:audio/oss
OSS4_CMAKE_BOOL=	USE_OSS4

PIPEWIRE_LIB_DEPENDS=	libpipewire-0.3.so:multimedia/pipewire
PIPEWIRE_CMAKE_BOOL=	USE_PIPEWIRE

PROJECTM_LIB_DEPENDS=	libprojectM.so:graphics/libprojectm
PROJECTM_CMAKE_BOOL=	USE_PROJECTM

PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
PULSEAUDIO_CMAKE_BOOL=	USE_PULSE

QMMP_DIALOG_CMAKE_BOOL=	USE_QMMP_DIALOG

QSUI_CMAKE_BOOL=	USE_QSUI

QTMULTIMEDIA_USE=	QT=multimedia
QTMULTIMEDIA_CMAKE_BOOL=USE_QTMULTIMEDIA

RGSCAN_LIB_DEPENDS=	libtag.so:audio/taglib
RGSCAN_CMAKE_BOOL=	USE_RGSCAN

SB_CMAKE_BOOL=		USE_SB

SCROBBLER_CMAKE_BOOL=	USE_SCROBBLER

SHOUTCAST_LIB_DEPENDS=	libogg.so:audio/libogg \
			libshout.so:audio/libshout \
			libsoxr.so:audio/libsoxr \
			libvorbis.so:audio/libvorbis
SHOUTCAST_CMAKE_BOOL=	USE_SHOUT

SID_LIB_DEPENDS=	libsidplayfp.so:audio/libsidplayfp
SID_CMAKE_BOOL=		USE_SID

SNDFILE_LIB_DEPENDS=	libsndfile.so:audio/libsndfile
SNDFILE_CMAKE_BOOL=	USE_SNDFILE

SOXR_LIB_DEPENDS=	libsoxr.so:audio/libsoxr
SOXR_CMAKE_BOOL=	USE_SOXR

TWOPANELDIALOG_CMAKE_BOOL=	USE_TWO_PANEL_DIALOG

UDISKS_RUN_DEPENDS=	bsdisks:sysutils/bsdisks
UDISKS_CMAKE_BOOL=	USE_UDISKS

VORBIS_LIB_DEPENDS=	libvorbis.so:audio/libvorbis \
			libogg.so:audio/libogg \
			libtag.so:audio/taglib
VORBIS_CMAKE_BOOL=	USE_VORBIS

WAVPACK_LIB_DEPENDS=	libwavpack.so:audio/wavpack
WAVPACK_CMAKE_BOOL=	USE_WAVPACK

WILDMIDI_LIB_DEPENDS=	libWildMidi.so:audio/wildmidi
WILDMIDI_CMAKE_BOOL=	USE_MIDI

XMP_LIB_DEPENDS=	libxmp.so:audio/libxmp
XMP_CMAKE_BOOL=		USE_XMP

post-patch:
	@${GREP} -L '${LOCALBASE}/lib/oss' \
		${WRKSRC}/src/plugins/Output/oss4/CMakeLists.txt | ${XARGS} \
		${REINPLACE_CMD} -e 's|/usr/local/|${LOCALBASE}/|'
	@${REINPLACE_CMD} -e 's|Qt6Multimedia|Qt5Multimedia|g' ${WRKSRC}/src/plugins/Output/CMakeLists.txt

post-build-DOXYGEN-on:
	cd ${WRKSRC}/doc && doxygen Doxyfile

post-install-DOCS-on:
	@${MKDIR} ${STAGEDIR}${DOCSDIR}; \
		cd ${WRKSRC} && ${INSTALL_MAN} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}

post-install-DOXYGEN-on:
	cd ${WRKSRC}/doc/html && \
		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/html
	@${FIND} -P ${STAGEDIR}${DOCSDIR}/html -type f 2>/dev/null | \
		${SED} -ne 's|^${STAGEDIR}${PREFIX}/||p' >> ${TMPPLIST}

.include <bsd.port.mk>