2026-04-28 13:08:45 -05:00

123 lines
3.1 KiB
Plaintext

# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
maintainer="Díaz Urbaneja Diego <sodomon2@gmail.com>"
pkgname=solarus-engine
_realname=solarus
pkgver=2.0.3
pkgrel=1
_qlementinever=1.4.0
pkgdesc="Solarus is an open-source adventure 2D game engine written in C++"
url="https://solarus-games.org/"
# riscv64: no luajit found
arch="all !riscv64"
license="GPL-3.0-only"
depends="
libogg
mesa
qt6-qttools
"
makedepends="
cmake
glm-dev
libmodplug-dev
libogg-dev
libvorbis-dev
luajit-dev
mesa-dev
openal-soft-dev
physfs-dev
qt6-qtbase-dev
qt6-qtsvg-dev
qt6-qttools-dev
samurai
sdl2_image-dev
sdl2_ttf-dev
sdl2-dev
"
# Tests make assumptions about endianness, so disable on s390x
case "$CARCH" in
s390x) options="!check" ;;
esac
subpackages="
$pkgname-dev
$pkgname-doc
$_realname-launcher
$_realname-quest-editor:editor
"
source="$pkgname-$pkgver.tar.gz::https://gitlab.com/solarus-games/solarus/-/archive/v$pkgver/solarus-v$pkgver.tar.gz
qlementine-$_qlementinever.tar.gz::https://github.com/oclero/qlementine/archive/refs/tags/v$_qlementinever.tar.gz
fix-gles-glad-conflict.patch.noauto
"
builddir="$srcdir/$_realname-v$pkgver"
prepare() {
default_prepare
# Fix GLAD/OpenGL ES header conflicts on ARM
case "$CARCH" in
aarch64|armv7|armhf) patch -p1 < "$srcdir"/fix-gles-glad-conflict.patch.noauto;;
esac
}
build() {
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release
cmake --build build
# fix launcher and editor build
cp build/include/solarus/core/config.h include/solarus/core/
ln -sf ../third_party/glad/include/glad include/
cmake -B build-launcher -G Ninja -S launcher \
-Wno-dev \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DSOLARUS_INCLUDE_DIR=include \
-DSOLARUS_LIBRARY=build/libsolarus.so
cmake --build build-launcher
cmake -B build-editor -G Ninja -S editor \
-Wno-dev \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DSOLARUS_INCLUDE_DIR=include \
-DSOLARUS_DIR=build \
-DSOLARUS_LIBRARY=build/libsolarus.so \
-DSOLARUS_USE_LOCAL_QLEMENTINE=ON \
-DSOLARUS_QLEMENTINE_LOCAL_PATH="$srcdir/qlementine-$_qlementinever"
cmake --build build-editor
}
check() {
ctest --test-dir build
}
package() {
DESTDIR="$pkgdir" cmake --install build
rm -r "$pkgdir/usr/include/solarus/third_party/"
}
launcher() {
pkgdesc="GUI Launcher for the Solarus engine."
depends="$pkgname"
cd "$builddir"
DESTDIR="$subpkgdir" cmake --install build-launcher
}
editor() {
pkgdesc="Game editor for the Solarus engine"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$builddir"
DESTDIR="$subpkgdir" cmake --install build-editor
}
sha512sums="
272d7eff41da5649fbc7237322bb22026a7c3158a4dd64516ea805603f0dd9bed9d8943cb043ae867737e6df7336f6227be9917fb2e7cc8ddd8cf99f6b51b998 solarus-engine-2.0.3.tar.gz
2b1363c5878c150cd052f4ea149c6b6322cb634218a8347dd8c2758a12cb83aea4efaa77726b5a2a1c857565caa5f452881715c3fbfe904792583e6a01f56967 qlementine-1.4.0.tar.gz
3f4f6abcc33f475b6113b7809bafe9d1d23b36df778a6e65c511d7fbe038c146c6197eea2f1c3b2263e2d65582915b490304c9ebedf7ad9c9d41f55e40037495 fix-gles-glad-conflict.patch.noauto
"