You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.4 KiB
68 lines
2.4 KiB
# Author: mosra <mosra@centrum.cz> |
|
pkgname=magnum-bindings |
|
pkgver=dev |
|
pkgrel=1 |
|
pkgdesc="C++11/C++14 graphics middleware for games and data visualization — bindings" |
|
arch=('i686' 'x86_64') |
|
url="https://magnum.graphics" |
|
license=('MIT') |
|
depends=('corrade' 'magnum' 'python') |
|
makedepends=('cmake' 'ninja' 'pybind11' 'lcov' 'python-coverage') |
|
provides=('magnum-bindings-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" |
|
|
|
# Colored output is enabled implicitly. If Ninja detects it's outputting to |
|
# a pipe, it strips it away from the output, alternatively you can set the |
|
# GCC_COLORS= (empty) env variable to temporarily disable colors. The |
|
# inverse, i.e. preserving colors when Ninja outputs to a pipe can be done |
|
# with CLICOLOR_FORCE=1: https://github.com/ninja-build/ninja/issues/2196 |
|
cmake .. \ |
|
-DCMAKE_CXX_FLAGS="--coverage" \ |
|
-DCMAKE_BUILD_TYPE=Debug \ |
|
-DCMAKE_INSTALL_PREFIX=/usr \ |
|
-DCMAKE_COLOR_DIAGNOSTICS=ON \ |
|
-DPYTHON_EXECUTABLE=$(which python) \ |
|
-DMAGNUM_WITH_PYTHON=ON \ |
|
-DMAGNUM_BUILD_TESTS=ON \ |
|
-G Ninja |
|
ninja |
|
} |
|
|
|
check() { |
|
# Python coverage |
|
cd "$_rootdir/src/python/corrade" |
|
CMAKE_BINARY_DIR="$_rootdir/build-coverage" coverage run -m unittest -v || true |
|
cp .coverage ../.coverage.corrade |
|
|
|
cd "$_rootdir/src/python/magnum" |
|
CMAKE_BINARY_DIR="$_rootdir/build-coverage" coverage run -m unittest -v || true |
|
cp .coverage ../.coverage.magnum |
|
|
|
cd .. |
|
coverage combine |
|
coverage html |
|
|
|
# C++ coverage |
|
cd "$_rootdir/build-coverage" |
|
|
|
rm -rf coverage |
|
mkdir coverage |
|
# Keep in sync with package/ci/circleci.yml, please |
|
# TODO figure out a way to avoid adding --ignore-errors mismatch |
|
lcov --ignore-errors mismatch --directory . --capture --output-file coverage.info |
|
lcov --extract coverage.info "*/src/python/*" "*/src/Corrade/*" "*/src/Magnum/*" --output-file coverage.info |
|
genhtml --output-directory ./coverage coverage.info |
|
} |
|
|
|
package() { |
|
echo -e "Open \n file://${_rootdir}build-coverage/coverage/index.html\n file://${_rootdir}src/python/htmlcov/index.html\nto see the results." && false |
|
}
|
|
|