# Author: mosra <mosra@centrum.cz>
pkgname=magnum
pkgver=dev.gcc48
pkgrel=1
pkgdesc="C++11/C++14 graphics middleware for games and data visualization (built with GCC 4.8)"
arch=('i686' 'x86_64')
url="https://magnum.graphics"
license=('MIT')
depends=('corrade=dev.gcc48' 'openal' 'sdl2' 'glfw')
makedepends=('cmake' 'ninja' 'gcc48')
options=('!strip')
provides=('magnum-git')

_rootdir=$startdir/../../

build() {
    # Disable flags unknown to GCC 4.8
    newcxxflags=$(echo $CXXFLAGS | sed s/-fstack-protector-strong.//g | sed s/.-fno-plt//g | sed s/.-fstack-clash-protection//g | sed s/.-fcf-protection//g)
    export CXXFLAGS="$newcxxflags"

    if [ ! -d "$_rootdir/build-gcc48" ] ; then
        mkdir "$_rootdir/build-gcc48"
        cd "$_rootdir/build-gcc48"

        cmake .. \
            -DCMAKE_CXX_COMPILER=g++-4.8 \
            -G Ninja
    fi

    cd "$_rootdir/build-gcc48"

    cmake .. \
        -DCMAKE_BUILD_TYPE=Debug \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DMAGNUM_WITH_AUDIO=ON \
        -DMAGNUM_WITH_VK=ON \
        -DMAGNUM_WITH_GLFWAPPLICATION=ON \
        -DMAGNUM_WITH_GLXAPPLICATION=ON \
        -DMAGNUM_WITH_SDL2APPLICATION=ON \
        -DMAGNUM_WITH_XEGLAPPLICATION=ON \
        -DMAGNUM_WITH_WINDOWLESSGLXAPPLICATION=ON \
        -DMAGNUM_WITH_EGLCONTEXT=ON \
        -DMAGNUM_WITH_GLXCONTEXT=ON \
        -DMAGNUM_WITH_OPENGLTESTER=ON \
        -DMAGNUM_WITH_ANYAUDIOIMPORTER=ON \
        -DMAGNUM_WITH_ANYIMAGECONVERTER=ON \
        -DMAGNUM_WITH_ANYIMAGEIMPORTER=ON \
        -DMAGNUM_WITH_ANYSCENECONVERTER=ON \
        -DMAGNUM_WITH_ANYSCENEIMPORTER=ON \
        -DMAGNUM_WITH_ANYSHADERCONVERTER=ON \
        -DMAGNUM_WITH_MAGNUMFONT=ON \
        -DMAGNUM_WITH_MAGNUMFONTCONVERTER=ON \
        -DMAGNUM_WITH_OBJIMPORTER=ON \
        -DMAGNUM_WITH_TGAIMAGECONVERTER=ON \
        -DMAGNUM_WITH_TGAIMPORTER=ON \
        -DMAGNUM_WITH_WAVAUDIOIMPORTER=ON \
        -DMAGNUM_WITH_DISTANCEFIELDCONVERTER=ON \
        -DMAGNUM_WITH_FONTCONVERTER=ON \
        -DMAGNUM_WITH_IMAGECONVERTER=ON \
        -DMAGNUM_WITH_SCENECONVERTER=ON \
        -DMAGNUM_WITH_SHADERCONVERTER=ON \
        -DMAGNUM_WITH_GL_INFO=ON \
        -DMAGNUM_WITH_AL_INFO=ON \
        -DMAGNUM_WITH_VK_INFO=ON \
        -DMAGNUM_BUILD_TESTS=ON \
        -DMAGNUM_BUILD_GL_TESTS=ON \
        -DMAGNUM_BUILD_VK_TESTS=ON
    ninja
}

check() {
    cd "$_rootdir/build-gcc48"
    CORRADE_TEST_COLOR=ON ctest --output-on-failure -j9
}

package() {
    cd "$_rootdir/build-gcc48"
    DESTDIR="$pkgdir/" ninja install
}
