mirror of https://github.com/mosra/magnum.git
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.
102 lines
3.7 KiB
102 lines
3.7 KiB
# Author: mosra <mosra@centrum.cz> |
|
pkgname=magnum |
|
pkgver=dev.clang.libc++ |
|
pkgrel=1 |
|
pkgdesc="C++11/C++14 graphics middleware for games and data visualization (built with clang and libc++)" |
|
arch=('i686' 'x86_64') |
|
url="https://magnum.graphics" |
|
license=('MIT') |
|
depends=('corrade=dev.clang.libc++' 'openal' 'sdl2' 'glfw' 'vulkan-icd-loader' 'libc++') |
|
makedepends=('cmake' 'clang' 'ninja') |
|
options=('!strip') |
|
provides=('magnum-git') |
|
|
|
_rootdir=$startdir/../../ |
|
|
|
build() { |
|
if [ ! -d "$_rootdir/build-clang-libc++" ] ; then |
|
mkdir "$_rootdir/build-clang-libc++" |
|
cd "$_rootdir/build-clang-libc++" |
|
|
|
# RelWithDebInfo is enabled but not built -- it's meant for profiling |
|
# from within the build dir |
|
cmake .. \ |
|
-DCMAKE_CONFIGURATION_TYPES="Debug;Release;RelWithDebInfo" \ |
|
-DCMAKE_CROSS_CONFIGS=all \ |
|
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g -DNDEBUG -fno-omit-frame-pointer" \ |
|
-DCMAKE_CXX_COMPILER=clang++ \ |
|
`# Make libc++ remove transitive includes, both for faster build` \ |
|
`# times and to detect if we're missing a transitive include.` \ |
|
`# Works with libc++ 16+, which is used by NDK r26+.` \ |
|
-DCMAKE_CXX_FLAGS="-stdlib=libc++ -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES" \ |
|
-DCMAKE_EXE_LINKER_FLAGS=-lc++abi \ |
|
-G "Ninja Multi-Config" |
|
fi |
|
|
|
cd "$_rootdir/build-clang-libc++" |
|
|
|
# Colored output is enabled implicitly. If Ninja detects it's outputting to |
|
# a pipe, it strips it away from the output; Clang unfortunately doesn't |
|
# have any env var 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_INSTALL_PREFIX=/usr \ |
|
-DCMAKE_COLOR_DIAGNOSTICS=ON \ |
|
-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_WINDOWLESSEGLAPPLICATION=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_VK_INFO=ON \ |
|
-DMAGNUM_WITH_AL_INFO=ON \ |
|
-DMAGNUM_BUILD_TESTS=ON \ |
|
-DMAGNUM_BUILD_GL_TESTS=ON \ |
|
-DMAGNUM_BUILD_VK_TESTS=ON |
|
ninja all:Debug all:Release |
|
} |
|
|
|
check() { |
|
cd "$_rootdir/build-clang-libc++" |
|
export CORRADE_TEST_SKIP_BENCHMARKS=ON |
|
|
|
for config in Debug Release; do |
|
CORRADE_TEST_COLOR=ON ctest -C $config --output-on-failure -j9 |
|
done |
|
} |
|
|
|
package() { |
|
cd "$_rootdir/build-clang-libc++" |
|
DESTDIR="$pkgdir/" ninja install:Debug |
|
|
|
# Prevent the Release build from overwriting Debug binaries |
|
for i in $(ls $pkgdir/usr/bin/magnum-*); do |
|
mv ${i}{,d} |
|
done |
|
|
|
DESTDIR="$pkgdir/" ninja install/strip:Release |
|
}
|
|
|