# Maintainer: Márcio Silva <coadde@parabola.nu>

_build_pkg=yes
_build_add=yes

[[ $_build_pkg != yes && $_build_pkg != no ]] && _build_pkg=yes
[[ $_build_add != yes && $_build_add != no ]] && _build_add=yes
[[ $_build_pkg == no  && $_build_add == no ]] && _build_add=yes

_pkgname=mitsuba
_pkgver=0.5.0
_pkgverM=${_pkgver%.*}
_pkgdat=20140225
_pkgrev=2030
_pkgrel=6
_bldname=blender
_bldver=2.71
_bldep=14
_addname=$_bldname-addon-$_pkgname
_addver=0.3.0 # __init__.py:bl_info>version
_adddat=20140722
_addrev=61
_addrel=4
_pyver=3.4

pkgbase=$_pkgname
[[ $_build_pkg == yes ]] && pkgname+=("$_pkgname")
[[ $_build_add == yes ]] && pkgname+=("$_bldname-addon-$_pkgname")
pkgver=$_pkgver.$_pkgrev
pkgrel=$_pkgrel
arch=('i686' 'x86_64' 'mips64el')
url="https://www.$_pkgname-renderer.org"
[[ $_build_pkg == yes ]] && depends=('boost-libs' 'collada-dom' 'glew' 'libxxf86vm' 'openexr' 'qt4' 'xerces-c')
[[ $_build_pkg == yes ]] && makedepends=('boost' 'cmake' 'eigen3' 'mercurial' 'python')
[[ $_build_pkg == yes ]] && source+=("$_pkgname-$_pkgver.$_pkgrev.tar.bz2::${url}/repos/$_pkgname/archive/$_pkgrev.tar.bz2")
[[ $_build_add == yes ]] && source+=("$_addname-$_addver.$_addrev.tar.bz2::${url}/repos/exporters/$_pkgname-$_bldname/archive/$_addrev.tar.bz2"
                                     'http://www.gnu.org/licenses/gpl-2.0.txt')
[[ $_build_pkg == yes ]] && sha512sums+=('cb30ca95ada36bec56aca3af55af19511ae64f05631d3e221308dee6fe04a1de08daab6e89c9025c8f6492731ed586d40d92f2168c5d49a060f31cd0afc7d0a7')
[[ $_build_add == yes ]] && sha512sums+=('cd812c46ccfb4673a5d170c96e4aa8275d136ef4ae300b50944aac69ff646e9118afa78a9a1f22e7b03fcc1e4fa496c889f59d8bf40836e27d023548061a4491'
                                         'aee80b1f9f7f4a8a00dcf6e6ce6c41988dcaedc4de19d9d04460cbfb05d99829ffe8f9d038468eabbfba4d65b38e8dbef5ecf5eb8a1b891d9839cda6c48ee957')

_prepare_mitsuba() {
  msg 'Renaming source dir'
  mv -v $srcdir/$_pkgname-???????????? $srcdir/$_pkgname-$_pkgver.$_pkgrev

  cd $srcdir/$_pkgname-$_pkgver.$_pkgrev

  msg 'renaming wrong OS name'
  _OS=$(uname -o)
  [[ $_OS == GNU ]] && sed -i 's|Linux|GNU|I' src/libcore/plugin.cpp
  [[ $_OS == GNU/Linux ]] && sed -i 's|Linux,|GNU/Linux,|' src/libcore/plugin.cpp
  [[ $_OS == GNU/kFreeBSD ]] && sed -i 's|Linux,|GNU/kFreeBSD,|' src/libcore/plugin.cpp
  sed -i 's|Linux/|Linux,|
          s|Linux|GNU/Linux|
         ' include/$_pkgname/core/{atomic,fstream,random,thread}.h

  msg 'removing Open Source term'
  sed -i 's|free-software/open-source|free-software|
         ' include/$_pkgname/core/quad.h

  msg 'fixing headers'
  sed -i 's|boost/spirit/home/phoenix/bind/bind_member_function.hpp|boost/phoenix/bind/preprocessed/bind_member_function.hpp|
          s|boost/spirit/home/phoenix/bind/bind_member_variable.hpp|boost/phoenix/bind/bind_member_variable.hpp|
          s|boost/spirit/home/phoenix/statement/if.hpp|boost/phoenix/statement/if.hpp|
         ' src/bsdfs/irawan.h
  sed -i 's|boost/spirit/home/phoenix/statement/if.hpp|boost/phoenix/statement/if.hpp|
         ' src/bsdfs/irawan.cpp

  [[ -d build ]] && rm -vr build
  mkdir -v build
}

_prepare_blender-addon-mitsuba() {
  msg 'Renaming addon dir'
  mv -v $srcdir/$_pkgname-$_bldname-???????????? $srcdir/$_addname-$_addver.$_addrev
}

prepare() {
  [[ $_build_pkg == yes ]] && _prepare_mitsuba
  [[ $_build_add == yes ]] && _prepare_blender-addon-mitsuba
}

_build_mitsuba() {
  cd $srcdir/$_pkgname-$_pkgver.$_pkgrev/build

  [[ $CARCH == x86_64 ]] && _SSE=ON || _SSE=OFF
  # i686: MTS_SSE disabled

  cmake .. -DCMAKE_INSTALL_PREFIX=/usr\
    -DBoost_PYTHON_LIBRARY=/usr/lib/libboost_python${_pyver::1}.so\
    -DMTS_SSE=$_SSE\
    -DPYTHON_INCLUDE_DIR=/usr/include/python${_pyver}m\
    -DPYTHON_LIBRARY=/usr/lib/libpython${_pyver}m.so
  make
}
[[ $_build_pkg == yes ]] && build() { _build_mitsuba; }

package_mitsuba() {
  pkgdesc='A physically based renderer'
  license=('GPL3')
  optdepends=('python: Python bindings'
              "$_addname: ${_bldname^} addon exporter and renderer")
  install="$_pkgname.install"

  cd $srcdir/$_pkgname-$_pkgver.$_pkgrev/build
  make DESTDIR=$pkgdir install

  b=$pkgdir/usr/share/licenses/$pkgname

  install -vd $b && install -vm644 ../doc/license.txt $b/GPL-v3.0

  msg 'fixing files and folders location'
  a=$pkgdir/usr
  b=$srcdir/$_pkgname-$_pkgver.$_pkgrev
  install -vd $a/{bin,lib/python$_pyver/lib-dynload,share/{applications,$_pkgname,pixmaps}}
  install -vm644 $b/data/linux/$_pkgname.desktop           $a/share/applications
  install -vm644 $b/src/mtsgui/resources/${_pkgname}48.png $a/share/pixmaps
  mv -v $a/{m{itsuba,ts{gui,import,srv,util}},bin}
  mv -v $a/lib{$pkgname-{bidir,core,hw,render}.so,}
  mv -v $a/{{data,plugins},share/$_pkgname}
  mv -v $a/{python/mitsuba.so,lib/python$_pyver/lib-dynload}
  mv -v $a/{sdk/include,}
  rmdir -v $a/{python,sdk}
}

package_blender-addon-mitsuba() {
  pkgver=$_addver.$_addrev.v$_bldver
  pkgrel=$_addrel
  pkgdesc="A addon for the ${_bldname^} which allows render and export with Mitsuba (built for the $_bldname package)"
  arch=('any')
  license=('GPL2')
  depends=("$_pkgname>=$_pkgver" "$_pkgname<${_pkgver/.*/}.$((${_pkgverM#*.}+1)).$((${_pkgver/*./}==0))" "$_bldname>=$_bldep:$_bldver" "$_bldname<$(($_bldep+1)):${_bldver/.*/}.$((${_bldver/*./}+1))")
  makedepends=()

  cd $srcdir/$_addname-$_addver.$_addrev

  msg 'fixing binary path'
  sed -i 's|'"'default'"': efutil.find_config_value('"'mitsuba', 'defaults', 'binary_path', ''"')|'"'default'"': '"'/usr/bin'"'|
         ' mtsblend/properties/engine.py

  a=$pkgdir/usr/share/$_bldname/$_bldver/scripts/addons
  b=$pkgdir/usr/share/licenses/$pkgname

  install -vd $a && cp -va mtsblend $a/$_pkgname
  install -vd $b && install -vm644 $startdir/gpl-2.0.txt $b/GPL-v2.0
}

# vim:set ts=2 sw=2 et: