# Author: mosra <mosra@centrum.cz>
pkgname=magnum-integration
pkgver=dev
pkgrel=1
pkgdesc="Integration libraries for the Magnum C++11/C++14 graphics engine (coverage build)"
arch=('i686' 'x86_64')
url="https://magnum.graphics"
license=('MIT')
depends=('magnum' 'bullet' 'eigen' 'libdart' 'imgui-src' 'gcc6')
makedepends=('cmake' 'ninja' 'lcov')
options=(!strip)
provides=('magnum-integration-git')

_rootdir=$startdir/../../

build() {
    mkdir -p "$_rootdir/build-coverage"
    cd "$_rootdir/build-coverage"

    # Disable optimization (saves A LOT of compilation time)
    newcxxflags=$(echo $CXXFLAGS | sed s/-O.//g | sed s/-D_FORTIFY_SOURCE=.//g)
    export CXXFLAGS="$newcxxflags"

    cmake .. \
        -DCMAKE_CXX_COMPILER="g++-6" \
        -DCMAKE_CXX_FLAGS="--coverage" \
        -DCMAKE_BUILD_TYPE=Debug \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DIMGUI_DIR=/opt/imgui \
        -DWITH_BULLET=ON \
        -DWITH_DART=ON \
        -DWITH_EIGEN=ON \
        -DWITH_GLM=ON \
        -DWITH_IMGUI=ON \
        -DBUILD_TESTS=ON \
        -DBUILD_GL_TESTS=ON \
        -G Ninja
    ninja
}

check() {
    cd "$_rootdir/build-coverage"
    CORRADE_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 || true
    MAGNUM_DISABLE_EXTENSIONS="GL_ARB_invalidate_subdata GL_ARB_multi_bind GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_shading_language_420pack GL_ARB_explicit_uniform_location GL_ARB_explicit_attrib_location GL_ARB_texture_filter_anisotropic" CORRADE_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true
    MAGNUM_DISABLE_EXTENSIONS="GL_ARB_direct_state_access" CORRADE_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true
    MAGNUM_DISABLE_EXTENSIONS="GL_EXT_direct_state_access" CORRADE_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true
    MAGNUM_DISABLE_EXTENSIONS="GL_ARB_get_texture_sub_image" CORRADE_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true
    MAGNUM_DISABLE_EXTENSIONS="GL_ARB_vertex_array_object" CORRADE_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true
    MAGNUM_DISABLE_EXTENSIONS="GL_KHR_debug" CORRADE_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true

    rm -rf coverage
    mkdir coverage
    lcov --gcov-tool="gcov-6" --directory . --capture --output-file coverage.info
    lcov --gcov-tool="gcov-6" --extract coverage.info "*/src/Magnum*/*" --output-file coverage.info
    lcov --gcov-tool="gcov-6" --remove coverage.info "*/Test/*" --output-file coverage.info
    lcov --gcov-tool="gcov-6" --remove coverage.info "*/build-coverage/src/*" --output-file coverage.info
    genhtml --output-directory ./coverage coverage.info
}

package() {
    echo "Open file://$_rootdir/build-coverage/coverage/index.html to see the results." && false
}

# kate: hl bash
