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

_bldname=blender
_bldver=2.69
_bldep=10

# ($srcdir/Tools/${_bldname^}2.6Export/__init__.py:bl_info>version)
_addver=2.0.3
_addrel=1

pkgbase=ogre
pkgname=(
  $pkgbase
  #$_bldname-addon-$pkgbase # package unstable
)
pkgver=1.9.0
pkgrel=13.parabola1
pkgdesc='Scene-oriented, flexible 3D engine written in C++, without nonfree software support and files'
arch=(
  x86_64
  i686
  armv7h
)
url=http://www.${pkgbase}3d.org
license=MIT
depends=(
  boost-libs
  freeimage
  freetype2
  glu
  libxaw
  libxrandr
  ois
  tinyxml
  zziplib
)
makedepends=(
  boost
  cmake
  doxygen
  graphviz
  mesa
  mercurial
  ttf-dejavu
)
mksource=(
  ogre::hg+https://bitbucket.org/sinbad/ogre/src#tag=v${pkgver//./-}
)
source=(
  https://repo.parabola.nu/other/$pkgbase-libre/$pkgbase-libre-$pkgver.tar.xz
  ogre-template-fix.patch::https://bitbucket.org/sinbad/ogre/commits/a24ac4afbbb9dc5ff49a61634af50da11ba8fb97/raw/
  ogre-cmake30.patch::https://bitbucket.org/sinbad/ogre/commits/d84bce645d3dd439188d3d29d8da51c51765a085/raw/
  libre.patch
)
mksha512sums=(
  SKIP
)
sha512sums=(
  13e743d65affd6813f6e3c6064d543bfe2d013a8d44bec203dc819859618114f0e5c7f5e67a98250d0174497dd58a9238956e04ac9f7925695ab6ebda555c412
  8188083e88fef6c9ed2df9058204ecb5384c1fac530570323aa5becbec93e7f2f9ff624a6568df845abd9ea1a01195b710d8b48e3074a2aa8101415bce873b72
  1130544e532d77d7fe31dbd09fe7980716e2497a309c35fa12663450838be393bdf329696d4411e5644e03e328cd8772fb9becb7be5f6a87bd54c296d90b75b7
  5480c08c6faf48c1aabde1efd9508165c2fbea78f19d58c6360ea310c223d1979a7d7eaa15c9a70c8c3b3e7f89877c6f47e7fe16638ae77c463d55e87a5a3316
)

mksource() {
  cd ${pkgbase}

  # remove nonfree files
  rm -v RenderSystems/GL/include/GL/{gl{,ext},wglext,glx{tokens,ext}}.h
  rm -v RenderSystems/GL3Plus/include/GL/glxtokens-backup.h
  rm -rv Samples/Media/materials/textures/nvidia
  rm -v Samples/Media/packs/chiropteraDM.{pk3,txt}
  rm -v CMake/Templates/quakemap{,_d}.cfg.in
}

prepare() {
  cd ${pkgbase}

  patch -Np1 < $srcdir/ogre-template-fix.patch
  patch -Np1 < $srcdir/ogre-cmake30.patch

  # remove nonfree references
  patch -Np1 -i $srcdir/libre.patch

  # add symlinks to point to mesa header files
  cd RenderSystems/GL/include/GL
  ln -sv /usr/include/GL/gl.h gl.h
  ln -sv /usr/include/GL/glext.h glext.h
  ln -sv /usr/include/GL/wglext.h wglext.h
  ln -sv /usr/include/GL/glxtokens.h glxtokens.h
  ln -sv /usr/include/GL/glxext.h glxext.h
}

build() {
  cd ${pkgbase}

  # get a clean build dir
  [[ -d build ]] && rm -vrf build
  mkdir -v build && cd build

  # Silence warnings about deprecated declarations
  CXXFLAGS+=' -Wno-deprecated-declarations'

  # SAMPLES, SAMPLES_SOURCE and TESTS are nonfree
  cmake .. \
    -DCMAKE_BUILD_TYPE=Release\
    -DCMAKE_INSTALL_PREFIX=/usr\
    -DCPACK_PACKAGE_DESCRIPTION_SUMMARY='Libre 3D Graphics Engine'\
    -D${pkgbase^^}_BUILD_COMPONENT_PAGING=TRUE\
    -D${pkgbase^^}_BUILD_COMPONENT_PROPERTY=TRUE\
    -D${pkgbase^^}_BUILD_COMPONENT_RTSHADERSYSTEM=TRUE\
    -D${pkgbase^^}_BUILD_COMPONENT_TERRAIN=TRUE\
    -D${pkgbase^^}_BUILD_PLATFORM_NACL=FALSE\
    -D${pkgbase^^}_BUILD_PLUGIN_BSP=TRUE\
    -D${pkgbase^^}_BUILD_PLUGIN_OCTREE=TRUE\
    -D${pkgbase^^}_BUILD_PLUGIN_PCZ=TRUE\
    -D${pkgbase^^}_BUILD_PLUGIN_PFX=TRUE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_GL=TRUE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_GLES=FALSE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_GLES2=FALSE\
    -D${pkgbase^^}_BUILD_RTSHADERSYSTEM_CORE_SHADERS=TRUE\
    -D${pkgbase^^}_BUILD_RTSHADERSYSTEM_EXT_SHADERS=TRUE\
    -D${pkgbase^^}_BUILD_SAMPLES=FALSE\
    -D${pkgbase^^}_BUILD_TESTS=FALSE\
    -D${pkgbase^^}_BUILD_TOOLS=TRUE\
    -D${pkgbase^^}_CONFIG_ENABLE_DDS=TRUE\
    -D${pkgbase^^}_CONFIG_ENABLE_FREEIMAGE=TRUE\
    -D${pkgbase^^}_CONFIG_ENABLE_GLES2_GLSL_OPTIMISER=TRUE\
    -D${pkgbase^^}_CONFIG_ENABLE_PVRTC=TRUE\
    -D${pkgbase^^}_CONFIG_ENABLE_VIEWPORT_ORIENTATIONMODE=TRUE\
    -D${pkgbase^^}_CONFIG_ENABLE_ZIP=TRUE\
    -D${pkgbase^^}_CONFIG_NEW_COMPILERS=TRUE\
    -D${pkgbase^^}_CONFIG_THREAD_PROVIDER=boost\
    -D${pkgbase^^}_INSTALL_DOCS=FALSE\
    -D${pkgbase^^}_INSTALL_SAMPLES=FALSE\
    -D${pkgbase^^}_INSTALL_SAMPLES_SOURCE=FALSE\
    -D${pkgbase^^}_INSTALL_TOOLS=TRUE\
    -D${pkgbase^^}_LIB_DIRECTORY=lib\
    -D${pkgbase^^}_PROFILING=TRUE\
    -D${pkgbase^^}_USE_BOOST=TRUE
#  make V=0
  make
}

package_ogre() {
  optdepends=(
    "boost: for developing using $pkgbase"
    "$pkgbase-docs: documentation"
  )
  conflicts=(${pkgbase}-libre)
  replaces=(${pkgbase}-libre)

  cd ${pkgbase}/build

  make DESTDIR=$pkgdir install

  # install license
  install -vDm644 ../Docs/License.html $pkgdir/usr/share/licenses/$pkgbase/license.html

  # remove files only useful for nonfree software
  rm -vr $pkgdir/usr/lib/OGRE/cmake
  rm -v $pkgdir/usr/include/OGRE/Example*.h
}

package_blender-addon-ogre() {
  pkgdesc="${pkgbase^} Mesh Exporter: A addon for the ${_bldname^} which allows export mesh and (skeletal/morph/pose) animations to ${pkgbase^}3D format (built for the $_bldname package)"
  arch=any
  depends=(
    "$_bldname>=$(($_bldep-1)):$_bldver"
    "$_bldname<$_bldep:${_bldver::2}$((${_bldver:2:4}+1))"
  )
  _pkgver=$pkgver
  pkgver=$_addver.v$_bldver
  pkgrel=$_addrel

  cd ${pkgbase}
  a=$pkgdir/usr/share/$_bldname/$_bldver/scripts/addons               
  install -vd $a && cp -va Tools/${_bldname^}2.6Export $a/$pkgbase
}

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