# $Id$
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>

pkgbase=ogre
pkgname=(
  ogre-libre
  #ogre-docs
)
pkgflag=(
  -libre
  -docs
)
pkgver=1.8.1
pkgrel=3
pkgdesc='A scene-oriented, flexible 3D engine written in C++, without nonfree nvidia-cg-toolkit support, nonfree fonts and arts'
arch=(
  i686
  x86_64
  mips64el
)
url="http://www.${pkgbase}3d.org"
license=(
  'MIT:(software)'
  'cc by-sa:(sinbad character)'
)
depends=(
  boost-libs
  freeimage
  freetype2
  glu
  libxaw
  libxrandr
  ois
  zziplib
)
makedepends=(
  boost
  cmake
  doxygen
  graphviz
  intel-tbb
  mesa
  #poco
  ttf-dejavu
)
install=$pkgbase.install
source=(
  "https://downloads.sourceforge.net/$pkgbase/${pkgbase}_src_v${pkgver//./-}.tar.bz2"
)
sha512sums=(
  0bbce593e5a9ebf51e3cb53661f6447d99ae28a53365d7f518c6d408216690527ef7552385160cff8d5c3ef15d3ab5c2520ef2c1f51fda5541d5d4dca4663ae2
)

build() {
  cd $srcdir/${pkgbase}_src_v${pkgver//./-}

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

  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_APPLE_IOS=FALSE\
    -D${pkgbase^^}_BUILD_PLUGIN_BSP=TRUE\
    -D${pkgbase^^}_BUILD_PLUGIN_CG=FALSE\
    -D${pkgbase^^}_BUILD_PLUGIN_OCTREE=TRUE\
    -D${pkgbase^^}_BUILD_PLUGIN_PCZ=TRUE\
    -D${pkgbase^^}_BUILD_PLUGIN_PFX=TRUE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_D3D9=FALSE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_D3D11=FALSE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_GL=TRUE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_GLES=FALSE\
    -D${pkgbase^^}_BUILD_RENDERSYSTEM_GLES2=FALSE\
    -D${pkgbase^^}_BUILD_SAMPLES=TRUE\
    -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_CG_SUPPORT=FALSE\
    -D${pkgbase^^}_CONFIG_ENABLE_GLES2_GLSL_OPTIMISER=FALSE\
    -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^^}_INSTALL_DOCS=TRUE\
    -D${pkgbase^^}_INSTALL_SAMPLES=TRUE\
    -D${pkgbase^^}_INSTALL_SAMPLES_SOURCE=TRUE\
    -D${pkgbase^^}_INSTALL_TOOLS=TRUE\
    -D${pkgbase^^}_LIB_DIRECTORY=lib\
    -D${pkgbase^^}_PROFILING=TRUE\
    -D${pkgbase^^}_USE_BOOST=TRUE
  make V=0

  # generate docs
  if [[ $(which dot) && $(which doxygen) ]]; then
    make V=0 doc
  fi
}

package_ogre-libre() {
  optdepends=(
    'intel-tbb: better threading support'
    #'poco: portability'
    "boost: for developing using $pkgbase"
    "$pkgbase${pkgflag[1]}: documentation"
  )
  provides=(
    $pkgbase=$pkgver
  )
  conflicts=(
    $pkgbase
  )
  replaces=(
    $pkgbase
  )

  cd $srcdir/${pkgbase}_src_v${pkgver//./-}/build

  make DESTDIR=$pkgdir install

  # fix samplebrowser name
  mv $pkgdir/usr/bin/SampleBrowser $pkgdir/usr/bin/${pkgbase^}SampleBrowser

  ## LIBRE PATCH ##
  # drop cg shaders, hlsl shaders, unusable headers, unusable samples, nonfree fonts and nonfree arts
  rm -fv  $pkgdir/usr/include/${pkgbase^^}/RTShaderSystem/${pkgbase^}Shader{CG,HLSL}Program{Processor,Writer}.h
  rm -fv  $pkgdir/usr/lib/${pkgbase^^}/Samples/Sample_{BSP,CelShading,Dot3Bump,Fresnel,SSAO}.so
  rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/{BSP,CelShading,Dot3Bump,Fresnel,SSAO}
  rm -fvr $pkgdir/usr/share/${pkgbase^^}/media/materials/textures/nvidia
  rm -fv  $pkgdir/usr/share/${pkgbase^^}/media/packs/{chiropteraDM.{pk3,txt},cubemapsJS.zip}
  rm -fvr $pkgdir/usr/share/${pkgbase^^}/media/fonts
  sed -i -e '
  /BSP/d
  /CelShading/d
  /Dot3Bump/d
  /Fresnel/d
  /SSAO/d
  ' $pkgdir/usr/share/${pkgbase^^}/samples.cfg
  sed -i -e '
  /Direct3D9/d
  /Direct3D11/d
  /CgProgramManager/d
  ' $pkgdir/usr/share/${pkgbase^^}/plugins.cfg
  sed -i -e '
  /cubemapsJS/d
  /fonts/d
  /nvidia/d
  ' $pkgdir/usr/share/${pkgbase^^}/resources.cfg
  find $pkgdir -type f -name *.cg   -delete
  find $pkgdir -type f -name *.hlsl -delete
  rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/Browser/Android
  rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/Browser/include/SampleBrowser_{NaCl,OSX,iOS}.h
  rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/Browser/src/FileSystemLayerImpl_{{Android,NaCl,OSX,WIN32}.cpp,iOS.mm}

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

  # move docs out of this package
  mv $pkgdir/usr/share/${pkgbase^^}/docs $srcdir/docs
}

package_ogre-docs() {
  pkgdesc="Documentation for $pkgbase"
  depends=(
  )

  cd $srcdir/${pkgbase}_src_v${pkgver//./-}/build

  # move docs into this package
  install -dm755  $pkgdir/usr/share/doc
  mv $srcdir/docs $pkgdir/usr/share/doc/${pkgbase^^}

  # symlink for docs
  install -dm755 $pkgdir/usr/share/${pkgbase^^}
  cd             $pkgdir/usr/share
  ln -s          doc/${pkgbase^^} ${pkgbase^^}/docs
}

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