Browse Source

package/archlinux: equip the Clang PKGBUILDs with a multi-config build.

So I can easily do both debugging and profiling also on Clang without
having to switch CMAKE_BUILD_TYPE and waste time waiting for a full
rebuild.
pull/601/head
Vladimír Vondruš 3 years ago
parent
commit
89e1dcbe11
  1. 24
      package/archlinux/PKGBUILD-clang
  2. 24
      package/archlinux/PKGBUILD-clang-libc++

24
package/archlinux/PKGBUILD-clang

@ -18,15 +18,19 @@ build() {
mkdir "$_rootdir/build-clang" mkdir "$_rootdir/build-clang"
cd "$_rootdir/build-clang" cd "$_rootdir/build-clang"
# RelWithDebInfo is enabled but not built -- it's meant for profiling
# from within the build dir
cmake .. \ 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++ \ -DCMAKE_CXX_COMPILER=clang++ \
-G Ninja -G "Ninja Multi-Config"
fi fi
cd "$_rootdir/build-clang" cd "$_rootdir/build-clang"
cmake .. \ cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_PREFIX=/usr \
-DMAGNUM_WITH_AUDIO=ON \ -DMAGNUM_WITH_AUDIO=ON \
-DMAGNUM_WITH_VK=ON \ -DMAGNUM_WITH_VK=ON \
@ -61,16 +65,26 @@ build() {
-DMAGNUM_BUILD_TESTS=ON \ -DMAGNUM_BUILD_TESTS=ON \
-DMAGNUM_BUILD_GL_TESTS=ON \ -DMAGNUM_BUILD_GL_TESTS=ON \
-DMAGNUM_BUILD_VK_TESTS=ON -DMAGNUM_BUILD_VK_TESTS=ON
ninja ninja all:Debug all:Release
} }
check() { check() {
cd "$_rootdir/build-clang" cd "$_rootdir/build-clang"
export CORRADE_TEST_SKIP_BENCHMARKS=ON export CORRADE_TEST_SKIP_BENCHMARKS=ON
CORRADE_TEST_COLOR=ON ctest --output-on-failure -j9
for config in Debug Release; do
CORRADE_TEST_COLOR=ON ctest -C $config --output-on-failure -j9
done
} }
package() { package() {
cd "$_rootdir/build-clang" cd "$_rootdir/build-clang"
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
} }

24
package/archlinux/PKGBUILD-clang-libc++

@ -18,17 +18,21 @@ build() {
mkdir "$_rootdir/build-clang-libc++" mkdir "$_rootdir/build-clang-libc++"
cd "$_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 .. \ 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++ \ -DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \ -DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DCMAKE_EXE_LINKER_FLAGS=-lc++abi \ -DCMAKE_EXE_LINKER_FLAGS=-lc++abi \
-G Ninja -G "Ninja Multi-Config"
fi fi
cd "$_rootdir/build-clang-libc++" cd "$_rootdir/build-clang-libc++"
cmake .. \ cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_PREFIX=/usr \
-DMAGNUM_WITH_AUDIO=ON \ -DMAGNUM_WITH_AUDIO=ON \
-DMAGNUM_WITH_VK=ON \ -DMAGNUM_WITH_VK=ON \
@ -64,16 +68,26 @@ build() {
-DMAGNUM_BUILD_TESTS=ON \ -DMAGNUM_BUILD_TESTS=ON \
-DMAGNUM_BUILD_GL_TESTS=ON \ -DMAGNUM_BUILD_GL_TESTS=ON \
-DMAGNUM_BUILD_VK_TESTS=ON -DMAGNUM_BUILD_VK_TESTS=ON
ninja ninja all:Debug all:Release
} }
check() { check() {
cd "$_rootdir/build-clang-libc++" cd "$_rootdir/build-clang-libc++"
export CORRADE_TEST_SKIP_BENCHMARKS=ON export CORRADE_TEST_SKIP_BENCHMARKS=ON
CORRADE_TEST_COLOR=ON ctest --output-on-failure -j9
for config in Debug Release; do
CORRADE_TEST_COLOR=ON ctest -C $config --output-on-failure -j9
done
} }
package() { package() {
cd "$_rootdir/build-clang-libc++" cd "$_rootdir/build-clang-libc++"
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
} }

Loading…
Cancel
Save