Browse Source

package/archlinux: switch to Ninja Multi-Config in the dev PKGBUILD.

See 5b81786b7d
for details.
pull/594/head
Vladimír Vondruš 4 years ago
parent
commit
e9bf47144f
  1. 52
      package/archlinux/PKGBUILD
  2. 142
      package/archlinux/PKGBUILD-release

52
package/archlinux/PKGBUILD

@ -9,7 +9,7 @@ license=('MIT')
depends=('corrade' 'openal' 'sdl2' 'glfw' 'vulkan-icd-loader')
makedepends=('cmake' 'ninja')
checkdepends=('vulkan-swrast')
options=('!strip')
options=('!strip' '!buildflags')
provides=('magnum-git')
_rootdir=$startdir/../../
@ -18,12 +18,9 @@ build() {
mkdir -p "$_rootdir/build"
cd "$_rootdir/build"
# 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_BUILD_TYPE=Debug \
-DCMAKE_CONFIGURATION_TYPES="Debug;Release" \
-DCMAKE_CROSS_CONFIGS=all \
-DCMAKE_INSTALL_PREFIX=/usr \
-DMAGNUM_WITH_AUDIO=ON \
-DMAGNUM_WITH_VK=ON \
@ -59,33 +56,42 @@ build() {
-DMAGNUM_BUILD_TESTS=ON \
-DMAGNUM_BUILD_GL_TESTS=ON \
-DMAGNUM_BUILD_VK_TESTS=ON \
-G Ninja
ninja
-G "Ninja Multi-Config"
ninja all:all
}
check() {
cd "$_rootdir/build"
export CORRADE_TEST_SKIP_BENCHMARKS=ON
export CORRADE_TEST_COLOR=ON
ctest --output-on-failure -j9
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" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_direct_state_access" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_get_texture_sub_image" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_vertex_array_object" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_uniform_buffer_object" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_KHR_debug" ctest --output-on-failure -j9 -R GLTest
# Run all Vulkan tests with llvmpipe as well
# Keep in sync with PKGBUILD-coverage, PKGBUILD-release and
# package/ci/unix-desktop-vulkan.sh
MAGNUM_DEVICE=cpu ctest --output-on-failure -j9 -R VkTest
for device in "" cpu; do
MAGNUM_DEVICE=$device MAGNUM_VULKAN_VERSION=1.0 ctest --output-on-failure -j9 -R VkTest
MAGNUM_DEVICE=$device MAGNUM_DISABLE_EXTENSIONS="VK_KHR_get_physical_device_properties2 VK_KHR_get_memory_requirements2 VK_KHR_bind_memory2 VK_KHR_create_renderpass2 VK_KHR_copy_commands2 VK_KHR_maintenance1 VK_KHR_multiview VK_KHR_maintenance2" MAGNUM_VULKAN_VERSION=1.0 ctest --output-on-failure -j9 -R VkTest
for config in Debug Release; do
ctest -C $config --output-on-failure -j9
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" ctest -C $config --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_direct_state_access" ctest -C $config --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_get_texture_sub_image" ctest -C $config --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_vertex_array_object" ctest -C $config --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_uniform_buffer_object" ctest -C $config --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_KHR_debug" ctest -C $config --output-on-failure -j -R GLTest
# Run all Vulkan tests with llvmpipe as well
# Keep in sync with PKGBUILD-coverage and package/ci/unix-desktop-vulkan.sh
MAGNUM_DEVICE=cpu ctest -C $config --output-on-failure -j9 -R VkTest
for device in "" cpu; do
MAGNUM_DEVICE=$device MAGNUM_VULKAN_VERSION=1.0 ctest -C $config --output-on-failure -j9 -R VkTest
MAGNUM_DEVICE=$device MAGNUM_DISABLE_EXTENSIONS="VK_KHR_get_physical_device_properties2 VK_KHR_get_memory_requirements2 VK_KHR_bind_memory2 VK_KHR_create_renderpass2 VK_KHR_copy_commands2 VK_KHR_maintenance1 VK_KHR_multiview VK_KHR_maintenance2" MAGNUM_VULKAN_VERSION=1.0 ctest -C $config --output-on-failure -j -R VkTest
done
done
}
package() {
cd "$_rootdir/build"
DESTDIR="$pkgdir/" ninja install
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
}

142
package/archlinux/PKGBUILD-release

@ -1,142 +0,0 @@
# Author: mosra <mosra@centrum.cz>
pkgname=magnum
pkgver=dev.release
pkgrel=1
pkgdesc="C++11/C++14 graphics middleware for games and data visualization (debug+release libs)"
arch=('i686' 'x86_64')
url="https://magnum.graphics"
license=('MIT')
depends=('corrade' 'openal' 'sdl2' 'glfw' 'vulkan-icd-loader')
makedepends=('cmake' 'ninja')
checkdepends=('vulkan-swrast')
options=('!strip')
provides=('magnum-git')
_rootdir=$startdir/../../
build() {
mkdir -p "$_rootdir/build"
cd "$_rootdir/build"
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_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 \
-G Ninja
ninja
mkdir -p "$_rootdir/build-release"
cd "$_rootdir/build-release"
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-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 \
-G Ninja
ninja
}
check() {
export CORRADE_TEST_SKIP_BENCHMARKS=ON
export CORRADE_TEST_COLOR=ON
for i in build build-release; do
cd "$_rootdir/$i"
ctest --output-on-failure -j9
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" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_direct_state_access" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_get_texture_sub_image" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_vertex_array_object" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_ARB_uniform_buffer_object" ctest --output-on-failure -j9 -R GLTest
MAGNUM_DISABLE_EXTENSIONS="GL_KHR_debug" ctest --output-on-failure -j9 -R GLTest
# Run all Vulkan tests with llvmpipe as well
# Keep in sync with PKGBUILD, PKGBUILD-coverage and
# package/ci/unix-desktop-vulkan.sh
MAGNUM_DEVICE=cpu ctest --output-on-failure -j9 -R VkTest
for device in "" cpu; do
MAGNUM_DEVICE=$device MAGNUM_VULKAN_VERSION=1.0 ctest --output-on-failure -j9 -R VkTest
MAGNUM_DEVICE=$device MAGNUM_DISABLE_EXTENSIONS="VK_KHR_get_physical_device_properties2 VK_KHR_get_memory_requirements2 VK_KHR_bind_memory2 VK_KHR_create_renderpass2 VK_KHR_copy_commands2 VK_KHR_maintenance1 VK_KHR_multiview VK_KHR_maintenance2" MAGNUM_VULKAN_VERSION=1.0 ctest --output-on-failure -j9 -R VkTest
done
done
}
package() {
cd "$_rootdir/build"
DESTDIR="$pkgdir/" ninja install
# Prevent the release version from overwriting the debug binary
for i in al-info gl-info distancefieldconverter fontconverter imageconverter sceneconverter shaderconverter; do
mv $pkgdir/usr/bin/magnum-${i}{,d}
done
cd "$_rootdir/build-release"
DESTDIR="$pkgdir/" ninja install/strip
}
# kate: hl bash
Loading…
Cancel
Save