# Template file for 'wine'
pkgname=wine
version=5.21
revision=1
build_style=gnu-configure
configure_args="--bindir=/usr/libexec/wine"
short_desc="Run Microsoft Windows applications"
maintainer="Helmut Pozimski <helmut@pozimski.eu>"
license="LGPL-2.1-or-later"
homepage="http://www.winehq.org/"
distfiles="https://dl.winehq.org/wine/source/${version%%.*}.x/wine-${version}.tar.xz"
checksum=5a1a5c2549d11bce0d6640220ed6fd31042afcbcb366f475e0ccb4781d2d2840

lib32mode=full
archs="i686 x86_64*"

hostmakedepends="pkg-config flex gettext"
makedepends="gettext-devel lcms2-devel zlib-devel ncurses-devel
 glu-devel libSM-devel libXext-devel libX11-devel libXpm-devel
 libXinerama-devel libXcomposite-devel libXmu-devel libXxf86vm-devel
 libXcursor-devel libXrandr-devel libXdamage-devel libXi-devel
 libldap-devel alsa-lib-devel libgphoto2-devel libxml2-devel
 libxslt-devel glib-devel freetype-devel pulseaudio-devel
 mpg123-devel libgsm-devel libopenal-devel giflib-devel libpng-devel
 v4l-utils-devel fontconfig-devel gnutls-devel dbus-devel sane-devel
 libpcap-devel cups-devel ocl-icd-devel vulkan-loader vkd3d-devel
 FAudio-devel gst-plugins-base1-devel"
depends="libXi libXinerama libXcomposite libXcursor libOSMesa
 desktop-file-utils hicolor-icon-theme liberation-fonts-ttf
 gnutls wine-common>=${version}_${revision} libwine>=${version}_${revision}"

case $XBPS_TARGET_MACHINE in
	x86_64*) configure_args+=" --enable-win64 --libdir=/usr/lib"
		_wine_suffix="64"
		_wineserver_suffix=${_wine_suffix}
		;;
	*)
		_wineserver_suffix="32"
		;;
esac

if [ "$XBPS_LIBC" = "glibc" ]; then
	hostmakedepends+=" prelink"
fi

_wine_libexec="/usr/libexec/wine"
nopie_files="${_wine_libexec}/wine${_wine_suffix}"

post_install() {
	# Font aliasing settings for Win32 applications
	install -d ${DESTDIR}/etc/fonts/conf.{avail,d}
	install -m644 ${FILESDIR}/30-win32-aliases.conf ${DESTDIR}/etc/fonts/conf.avail
	ln -s ../conf.avail/30-win32-aliases.conf ${DESTDIR}/etc/fonts/conf.d/30-win32-aliases.conf
	mv ${DESTDIR}${_wine_libexec}/wineserver ${DESTDIR}${_wine_libexec}/wineserver${_wineserver_suffix}
	vbin ${FILESDIR}/wine
	vbin ${FILESDIR}/wineserver
	for file in msiexec regedit regsvr32 wineboot winecfg winepath winemine winefile \
		winedbg wineconsole notepad msidb widl winebuild winecpp winedump wineg++ \
		winegcc winemaker wmc wrc function_grep.pl
	do
		mv ${DESTDIR}/usr/libexec/wine/${file} ${DESTDIR}/usr/bin/
	done
	case $XBPS_TARGET_MACHINE in
		x86_64*)
			ln -s ${_wine_libexec}/wine64 ${DESTDIR}/usr/bin/wine64
		;;
	esac
}

libwine_package() {
	lib32mode=full
	short_desc+=" - Runtime library"
	replaces="libwine-unstable>=0"
	pkg_install() {
		vmove "usr/lib/*.so.*"
		vmove usr/lib/wine
	}
}

wine-devel_package() {
	depends="libwine-${version}_${revision}"
	short_desc+=" - development files"
	replaces="wine-unstable-devel>=0"
	pkg_install() {
		vmove usr/include
		vmove "usr/lib/*.so"
	}
}

wine-common_package() {
	short_desc+=" - common files"
	binfmts="/usr/bin/wine --magic MZ"
	pkg_install() {
		vmove usr/share
		vmove etc/fonts
		for file in wine wineserver msiexec regedit regsvr32 wineboot winecfg winepath winemine winefile winedbg wineconsole notepad msidb
		do
			vmove usr/bin/${file}
		done
	}
}

wine-tools_package() {
	depends="wine-${version}_${revision}"
	short_desc+=" - development tools"
	pkg_install() {
		for file in widl winebuild winecpp winedump wineg++ winegcc winemaker wmc wrc function_grep.pl
		do
			vmove usr/bin/${file}
		done
	}
}
