# Template file for 'vlc'
pkgname=vlc
version=2.1.2
revision=2
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
 --disable-lua --disable-live555 --disable-fluidsynth
 --enable-dvdread --enable-flac --disable-gnomevfs"
short_desc="VideoLan Client - A highly portable multimedia player"
maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://www.videolan.org/vlc/"
license="GPL-2"
distfiles="http://download.videolan.org/pub/videolan/vlc/${version}/vlc-${version}.tar.xz"
checksum=219b812be1bc2eba40faa86419d0aa2c479a7380af8af216e8bfa22eb6fc8ec4

# XXX Add missing deps: gme, telepathy, lua, live555, libtar (for skins2).
hostmakedepends="automake libtool pkg-config libgcrypt-devel"
makedepends="videoproto libudev-devel>=183 libpng-devel>=1.6 libupnp-devel
 ncurses-devel libvorbis-devel x264-devel>=20131007.2245_2 ffmpeg-devel>=2.1
 xcb-util-devel>=0.3.9 xcb-util-keysyms-devel>=0.3.9 libsamplerate-devel
 libXxf86vm-devel libXinerama-devel libXpm-devel libXvMC-devel libXv-devel
 libmpeg2-devel libflac-devel>=1.3.0 fribidi-devel freetype-devel
 avahi-libs-devel libmad-devel liba52-devel libdca-devel libass-devel
 libdvbpsi-devel libgcrypt-devel dbus-glib-devel samba-devel libmodplug-devel
 gnutls-devel>=3.1.5 taglib-devel libmatroska-devel libmpcdec-devel libproxy-devel
 libcdio-devel libdvdnav-devel libsysfs-devel libmtp-devel>=1.1.4
 sqlite-devel libtheora-devel speex-devel pulseaudio-devel libxml2-devel
 opus-devel libbluray-devel faad2-devel jack-devel libSM-devel freefont-ttf"
depends="freefont-ttf hicolor-icon-theme desktop-file-utils"

if [ "$XBPS_TARGET_MACHINE" = "i686" ] || [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
	configure_args+=" --enable-vdpau --enable-libva"
	makedepends+=" libvdpau-devel libva-devel MesaLib-devel"
fi

if [ "$XBPS_TARGET_MACHINE" = "armv6l" ]; then
	# XXX only for rpi
	configure_args+=" --enable-omxil --enable-omxil-vout --enable-rpi-omxil"
	makedepends+=" rpi-firmware"
	CFLAGS+=" -I${XBPS_CROSS_BASE}/opt/vc/include"
	CFLAGS+=" -I${XBPS_CROSS_BASE}/opt/vc/include/interface/vcos"
	CFLAGS+=" -I${XBPS_CROSS_BASE}/opt/vc/include/interface/vmcs_host/linux"
	CFLAGS+=" -I${XBPS_CROSS_BASE}/opt/vc/include/interface/vcos/pthreads"
	LDFLAGS+=" -L${XBPS_CROSS_BASE}/opt/vc/lib -lbcm_host -lvcos -lvchiq_arm"
fi

# Package build options
build_options="notify opengl qt svg v4l"
desc_option_notify="Enable support for desktop notifications (libnotify)"
desc_option_svg="Enable support for SVG"
desc_option_opengl="Enable support for OpenGL"
desc_option_qt="Enable support for building the QT UI"
desc_option_v4l="Enable support for V4L2 (Video 4 Linux 2)"

# Enable gles2 by default on x86.
if [ "$XBPS_TARGET_MACHINE" = "i686" -o "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
	build_options_default="opengl"
fi

if [ -z "$CROSS_BUILD" ]; then
	build_options_default+=" libnotify qt"
fi

if [ "$build_option_notify" ]; then
	configure_args+=" --enable-notify"
	makedepends+=" libnotify-devel"
else
	configure_args+=" --disable-notify"
fi

if [ "$build_option_opengl" ]; then
	configure_args+=" --enable-glx"
	makedepends+=" MesaLib-devel"
else
	configure_args+=" --disable-glx"
fi

if [ "$build_option_qt" ]; then
	configure_args+=" --enable-qt"
	makedepends+=" qt-devel"
else
	configure_args+=" --disable-qt"
fi

if [ "$build_option_svg" ]; then
	configure_args+=" --enable-svg"
	makedepends+=" librsvg-devel"
else
	configure_args+=" --disable-svg"
fi

if [ "$build_option_v4l" ]; then
	configure_args+=" --enable-v4l2"
	makedepends+=" v4l-utils-devel"
else
	configure_args+=" --disable-v4l2"
fi

pre_configure() {
	NOCONFIGURE=1 ./bootstrap

	# hostname -s is not valid, at least in coreutils!
	sed -i "s|hostname -s|hostname|g" configure
	sed -i -e "s|/usr/share/fonts/truetype/freefont|/usr/share/fonts/TTF|" \
		-e 's,freetype/ftsynth.h,freetype2/ftsynth.h,' \
		modules/text_renderer/freetype.c
}

post_install() {
	# Remove unused stuff
	rm -f ${DESTDIR}/usr/lib/vlc/plugins/plugins.dat
	rm -f ${DESTDIR}/usr/lib/vlc/libcompat.a

	install -d ${DESTDIR}/usr/share/pixmaps
	cd ${DESTDIR}/usr/share/pixmaps
	ln -sf ../icons/hicolor/48x48/apps/vlc.png vlc.png
}

libvlc_package() {
	replaces="vlc<2.1.1_2"
	short_desc+=" - runtime libraries"
	pkg_install() {
		vmove "usr/lib/*.so.*"
		for f in ${DESTDIR}/usr/lib/vlc/plugins/*; do
			plugindir="$(basename ${f##${DESTDIR}})"
			[ "$plugindir" = "gui" ] && continue
			vmove usr/lib/vlc/plugins/$plugindir
		done
	}
}

vlc-devel_package() {
	short_desc+=" - development files"
	depends+="libvlc>=${version}_${revision}"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.so"
	}
}