# Maintainer: Jan Cholasta # Build with the recommended fmodex version: _fmodex=4.26.36 # Build with the currently installed fmodex version: #_fmodex=$(LC_ALL=C pacman -Q fmodex | grep -Po '(?<= ).+(?=-)') # Build without fmodex: #_fmodex= # Build with OpenAL: _openal=1 # Build without OpenAL: #_openal= _name=gzdoom pkgname=${_name}-git pkgver=2.2pre.709.g6f28735 pkgrel=1 _label='GZDoom' _desc='Advanced Doom source port with OpenGL support' pkgdesc="${_desc} (git version)" arch=('i686' 'x86_64') url='http://www.zdoom.org/' license=('BSD' 'custom:BUILD' 'custom:doom' 'custom:dumb' 'LGPL') depends=('fluidsynth' ${_fmodex:+"fmodex=$_fmodex"} 'gtk2' 'gxmessage' 'libgl' 'libgme' ${_openal:+'libsndfile'} ${_openal:+'mpg123'} ${_openal:+'openal'} 'sdl2') makedepends=('cmake' 'desktop-file-utils' 'git' 'imagemagick' 'xdg-utils') makedepends_i686=('nasm') optdepends=('blasphemer-wad: Blasphemer (free Heretic) game data' 'chexquest3-wad: Chex Quest 3 game data' 'doom1-wad: Doom shareware game data' 'freedoom: FreeDoom game data' 'hacx-wad: HacX game data' 'harmony-wad: Harmony game data' 'heretic1-wad: Heretic shareware game data' 'hexen1-wad: Hexen demo game data' 'strife0-wad: Strife shareware game data' 'square1-wad: The Adventures of Square, Episode 1 game data' 'urbanbrawl-wad: Urban Brawl: Action Doom 2 game data') provides=("${_name}") conflicts=("${_name}") install=install source=("${_name}::git://github.com/coelckers/${_name}.git" 'desktop.template' '0001-Mark-stack-as-not-executable-in-assembler-sources.patch' '0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch') _srcsubdir="${_name}" sha256sums=('SKIP' 'f2c58925238fe0d01e630527c8c4431681ccaec2d763ba075429b747d1a98a8c' '52d03619b1e53d0d033eabc818661406a7b623918e81f6ca395e9ff2e9f77d2b' '56ef41d8f96053886919a11a44a9e8080fbbee35e65631ad4aceb204a29b2ee6') pkgver() { cd "${_srcsubdir}" git describe --long --tags --match '[Gg]*' | sed -r 's/^[Gg]//;s/([^-]*-g)/\1/;s/-/./g' } prepare() { cd "${_srcsubdir}" local _file for _file in "${source[@]}"; do if [[ "${_file}" == *.patch ]]; then patch -p1 <"${srcdir}/${_file}" fi done } build() { cd "${_srcsubdir}" cat >"${_name}.sh" <'bsd.txt' cp "${srcdir}/desktop.template" "${_name}.desktop" desktop-file-edit --set-name="${_label}" \ --set-generic-name="${_desc}" \ --set-icon="${_name}" \ --set-key=Exec --set-value="${_name} %F" \ "${_name}.desktop" mkdir 'icons' convert 'src/win32/icon1.ico[2]' 'icons/48.png' convert 'src/win32/icon1.ico[3]' 'icons/32.png' convert 'src/win32/icon1.ico[4]' 'icons/16.png' } package() { cd "${_srcsubdir}" install -D "${_name}.sh" "${pkgdir}/usr/bin/${_name}" mkdir -p "${pkgdir}/usr/lib/${_name}" install "${_name}" "${pkgdir}/usr/lib/${_name}/" install -m644 "${_name}.pk3" "${pkgdir}/usr/lib/${_name}/" if [[ -n "${_fmodex}" ]]; then install 'liboutput_sdl.so' "${pkgdir}/usr/lib/${_name}/" fi mkdir -p "${pkgdir}/usr/share/${_name}" install -m644 'brightmaps.pk3' "${pkgdir}/usr/share/${_name}/" install -m644 'lights.pk3' "${pkgdir}/usr/share/${_name}/" ln -s '/usr/share/doom/doom.wad' "${pkgdir}/usr/share/${_name}/freedoomu.wad" ln -s '/usr/share/doom/doom2.wad' "${pkgdir}/usr/share/${_name}/freedoom.wad" ln -s '/usr/share/doom/heretic.wad' "${pkgdir}/usr/share/${_name}/blasphemer.wad" ln -s '/usr/share/doom/hexen.wad' "${pkgdir}/usr/share/${_name}/hexendemo.wad" mkdir -p "${pkgdir}/usr/share/licenses/${pkgname}" install -m644 'bsd.txt' "${pkgdir}/usr/share/licenses/${pkgname}/bsd.txt" install -m644 'docs/BUILDLIC.TXT' "${pkgdir}/usr/share/licenses/${pkgname}/buildlic.txt" install -m644 'docs/doomlic.txt' "${pkgdir}/usr/share/licenses/${pkgname}/doomlic.txt" install -m644 'dumb/licence.txt' "${pkgdir}/usr/share/licenses/${pkgname}/dumb.txt" desktop-file-install --dir="${pkgdir}/usr/share/applications" "${_name}.desktop" mkdir -p "${pkgdir}/usr/share/icons/hicolor" ( cd 'icons' export XDG_DATA_DIRS="${pkgdir}/usr/share" local _file for _file in *.png; do xdg-icon-resource install --noupdate \ --novendor \ --size "${_file%.png}" \ "${_file}" \ "${_name}" done ) }