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.
 
 
 
 
 

96 lines
3.3 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++"
cmake .. \
-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_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
}