summaryrefslogtreecommitdiff
path: root/multimedia/gst-plugins1-base/Makefile.common
blob: 79e5d9b5bcc211639a294c8227833ac0979caf05 (plain)
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
# $NetBSD: Makefile.common,v 1.44 2022/07/18 15:40:56 wiz Exp $

DISTNAME=	gst-plugins-base-1.20.3
MASTER_SITES=	https://gstreamer.freedesktop.org/src/gst-plugins-base/
EXTRACT_SUFX=	.tar.xz

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	https://gstreamer.freedesktop.org/
LICENSE=	gnu-gpl-v2

# "error: 'for' loop initial declarations are only allowed in C99 mode"
USE_LANGUAGES=	c99 c++

USE_TOOLS+=	pkg-config

DISTINFO_FILE=	${.CURDIR}/../../multimedia/gst-plugins1-base/distinfo
PATCHDIR=	${.CURDIR}/../../multimedia/gst-plugins1-base/patches

PKGCONFIG_OVERRIDE=		output/pkgconfig/*.pc
PKGCONFIG_OVERRIDE_STAGE=	pre-install

PYTHON_VERSIONS_INCOMPATIBLE=	27
PYTHON_FOR_BUILD_ONLY=		tool

# grep '^option' meson_options.txt | grep feature | \
# sed -e "s/',.*//g" -e "s/option('//g" | \
# xargs printf 'GST_PLUGINS_SET+=\t%s\n'
GST_PLUGINS_SET+=	iso-codes
GST_PLUGINS_SET+=	gl
GST_PLUGINS_SET+=	gl-graphene
GST_PLUGINS_SET+=	gl-jpeg
GST_PLUGINS_SET+=	gl-png
GST_PLUGINS_SET+=	adder
GST_PLUGINS_SET+=	app
GST_PLUGINS_SET+=	audioconvert
GST_PLUGINS_SET+=	audiomixer
GST_PLUGINS_SET+=	audiorate
GST_PLUGINS_SET+=	audioresample
GST_PLUGINS_SET+=	audiotestsrc
GST_PLUGINS_SET+=	compositor
GST_PLUGINS_SET+=	encoding
GST_PLUGINS_SET+=	gio
GST_PLUGINS_SET+=	gio-typefinder
GST_PLUGINS_SET+=	overlaycomposition
GST_PLUGINS_SET+=	pbtypes
GST_PLUGINS_SET+=	playback
GST_PLUGINS_SET+=	rawparse
GST_PLUGINS_SET+=	subparse
GST_PLUGINS_SET+=	tcp
GST_PLUGINS_SET+=	typefind
GST_PLUGINS_SET+=	videoconvert
GST_PLUGINS_SET+=	videorate
GST_PLUGINS_SET+=	videoscale
GST_PLUGINS_SET+=	videotestsrc
GST_PLUGINS_SET+=	volume
GST_PLUGINS_SET+=	alsa
GST_PLUGINS_SET+=	cdparanoia
GST_PLUGINS_SET+=	libvisual
GST_PLUGINS_SET+=	ogg
GST_PLUGINS_SET+=	opus
GST_PLUGINS_SET+=	pango
GST_PLUGINS_SET+=	theora
GST_PLUGINS_SET+=	tremor
GST_PLUGINS_SET+=	vorbis
GST_PLUGINS_SET+=	x11
GST_PLUGINS_SET+=	xshm
GST_PLUGINS_SET+=	xvideo
GST_PLUGINS_SET+=	examples
GST_PLUGINS_SET+=	tests
GST_PLUGINS_SET+=	tools
GST_PLUGINS_SET+=	introspection
GST_PLUGINS_SET+=	nls
GST_PLUGINS_SET+=	orc
GST_PLUGINS_SET+=	qt5
GST_PLUGINS_SET+=	doc

.for i in ${GST_PLUGINS_SET}
.  if !empty(GST_PLUGINS:M${i})
MESON_ARGS+=	-D${i}=enabled
.  else
MESON_ARGS+=	-D${i}=disabled
.  endif
.endfor

#
# We need to force meson to only build from the "ext" directory
# when building plugins.
#
.if defined(GST_EXT_BUILD)
GST_EXT_BASEDIR?=	ext
GST_PLUGIN_DIRS?=	${GST_PLUGINS}

pre-configure: fix-subdirs

fix-subdirs:
	${AWK} -f ${.CURDIR}/../../multimedia/gst-plugins1-base/files/only-build-extensions.awk \
	    -v basedir=${GST_EXT_BASEDIR} ${WRKSRC}/meson.build > ${WRKSRC}/meson.build.new
	${MV} ${WRKSRC}/meson.build.new ${WRKSRC}/meson.build
	# Then, we need to append the dependency handling code for the
	# libraries which -base itself builds...
.  for ext in ${GST_PLUGIN_DIRS}
	${CAT} ${.CURDIR}/../../multimedia/gst-plugins1-base/files/base-deps.meson \
	    ${WRKSRC}/${GST_EXT_BASEDIR}/${ext}/meson.build > \
		    ${WRKSRC}/${GST_EXT_BASEDIR}/${ext}/meson.build.new
	${MV} ${WRKSRC}/${GST_EXT_BASEDIR}/${ext}/meson.build.new \
	    ${WRKSRC}/${GST_EXT_BASEDIR}/${ext}/meson.build
.  endfor
	# ... this is a bit nasty compared to BUILD_DIRS...

post-install:
	${RM} -f ${DESTDIR}${PREFIX}/lib/pkgconfig/gstreamer-plugins-base-1.0.pc
.endif

.include "../../devel/meson/build.mk"
.include "../../lang/python/tool.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../textproc/iso-codes/buildlink3.mk"
BUILDLINK_API_DEPENDS.gstreamer1+=	gstreamer1>=1.20.0
.include "../../multimedia/gstreamer1/buildlink3.mk"