blob: 6c809e7771b449db830c2b166a6b5c5e4407d471 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# Maintainer: Lucki <https://aur.archlinux.org/account/Lucki>
# Contributor: Carl Reinke <mindless2112 gmail com>
# shellcheck shell=bash
# shellcheck disable=SC2034,SC2154
pkgname=lix
pkgver=0.10.26
pkgrel=1
pkgdesc="An action-puzzle game inspired by Lemmings"
url="https://www.lixgame.com/"
changelog=.CHANGELOG
license=('custom:CC0')
_gitname=LixD
source=("$pkgname-$pkgver.src.tar.gz::https://github.com/SimonN/LixD/archive/v$pkgver.tar.gz"
"$pkgname-music-1.1.zip::https://www.lixgame.com/dow/lix-music.zip")
sha512sums=('c966ddb53cc07e0ac58cf1fdb3efe6d6f3138ea84ef11765b82f5ade7e2b618a66070d5449d6855fb72104ad68ff0405b018a63e78d81877e8bd26d0511f67f1'
'280fd25a479ac8dd24475b014234270a12ab34edca7fb2f7ce4b768259111b1e7626d3ba37ac13d810f0653d23d7c9f212776e94d2c0b31a0de580864771ce9f')
arch=('i686' 'x86_64')
depends=(
allegro
d-runtime
enet
hicolor-icon-theme
)
makedepends=(
d-compiler
dub
git
jq
pkgconf # https://github.com/SimonN/LixD/issues/469#issuecomment-2174416422
)
prepare() {
cd "$_gitname-$pkgver" || exit 1
# Iterate thorugh the required packages and versions to fetch them in advance
# Read from dub.selections.json and print them as "package@version"
for line in $(jq -r '.versions | keys[] as $k | "\($k)@\(.[$k])"' <dub.selections.json); do
# Fetch each package at the required version
# Expected format is: package@version
dub fetch --cache=local "$line"
done
}
_build() {
_r=0
# 2022.02.26
# 15:22 <@SimonN> It's possible that it's already enough to raise the stack size in the current shell: ulimit -s 16384
# 15:22 <@SimonN> See also: https://github.com/ldc-developers/ldc/issues/3913
# 15:26 <@SimonN> Yes, very high chance that the following will fix/workaround: Execute "ulimit -s 16384" in the same shell that will then run dub. I.e., we double the stack size, assuming "ulimit -s" printed 8192 before; it does that for me in new shells.
ulimit -s 16384
dub "$@" \
`# Do not resolve missing dependencies before building` \
--nodeps \
`# ensure dub stays outside the users home directory:` \
--cache=local \
`# Runs multiple compiler instances in parallel, if possible:` \
--parallel \
`# Forces a recompilation even if the target is up to date:` \
--force \
`# force FHS compatibility:` \
--build=releaseXDG
}
build() {
cd "$_gitname-$pkgver" || exit 1
_build build
}
check() {
cd "$_gitname-$pkgver" || exit 1
_build test
}
package() {
cd "$_gitname-$pkgver" || exit 1
# install application entry
install -Dm644 \
`# SRCFILE:` \
"data/desktop/com.lixgame.Lix.desktop" \
`# DSTFILE:` \
"$pkgdir/usr/share/applications/$pkgname.desktop"
# install application entry icon
install -Dm644 \
`# SRCFILE:` \
"data/images/${pkgname}_logo.svg" \
`# DSTFILE:` \
"$pkgdir/usr/share/icons/hicolor/scalable/apps/$pkgname.svg"
# install license text
install -Dm644 \
`# SRCFILE:` \
"doc/copying.txt" \
`# DSTFILE:` \
"$pkgdir/usr/share/licenses/$pkgname/COPYING"
# install man page
install -Dm644 \
`# SRCFILE:` \
"doc/lix.6" \
`# DSTFILE:` \
"$pkgdir/usr/share/man/man6/lix.6"
# install binary
install -Dm755 \
`# SRCFILE:` \
"bin/$pkgname" \
`# DSTFILE:` \
"$pkgdir/usr/bin/$pkgname"
# remove unimportant files
# https://raw.githubusercontent.com/SimonN/LixD/master/doc/build/package.txt
rm -r "doc/build"
# https://lists.archlinux.org/pipermail/aur-general/2011-November/016777.html
# make directories
mkdir -p \
"$pkgdir/usr/share/$pkgname" \
"$pkgdir/usr/share/doc/$pkgname"
# copy documentary
cp -dpr --no-preserve=ownership \
`# SRCFILES:` \
"doc/." \
`# DSTDIR:` \
"$pkgdir/usr/share/doc/$pkgname/"
# copy game files
cp -dpr --no-preserve=ownership \
`# SRCDIRS:` \
"data" \
"images" \
"levels" \
"$srcdir/music" \
`# DSTDIR:` \
"$pkgdir/usr/share/$pkgname"
}
|