summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 0db3a29c111d0c304cc212df58a278f2e4270c96 (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
# See `Access Key` section of https://manual.gamemaker.io/lts/en/Settings/Building_via_Command_Line.htm
# to create an access key of GameMakerStudio. Then set it as environment variable MAKEPKG_GAMEMAKER_ACCESS_KEY
# so we can use it to create license plist file, which is required for building game.

pkgname=dijeweled
pkgver=1.18
pkgrel=1
pkgdesc="A fan-made Bejeweled game."
arch=(x86_64)
url=https://github.com/LDinos/Dijeweled
license=(AGPL-3.0-or-later)
makedepends=(ffmpeg gamemaker-steamruntime-sdk-bin rsync unzip zip)
source=("$pkgname-$pkgver.tar.gz::https://github.com/LDinos/Dijeweled/archive/refs/tags/v$pkgver.tar.gz")
# https://github.com/bscotch/igor-setup
# A bootstrapper used for downloading full runtime.
source_x86_64=("igor-x86_64.zip::https://gms.yoyogames.com/igor_linux-x64.zip")
sha256sums=('d10cd913a8b52c3f0f276b14f66e4afb1ed96284259a9d2114e8e99a56dcaa9f')
sha256sums_x86_64=('cb4ba26356e89b7d95ea3a2d4910ba6d4d795e60147ae350eafadb74390f6895')

_runtime=2024.13.1.242 # nearest to 2024.13.1.193
_igor=linux/x64/Igor

prepare() {
    chmod +x "$srcdir/$_igor"
    echo "Fetching license file..."
    "$srcdir/$_igor" runtime FetchLicense \
    	-ak="$MAKEPKG_GAMEMAKER_ACCESS_KEY" \
    	-of="$srcdir/license.plist"
    echo "Installing runtime..."
    "$srcdir/$_igor" runtime Install $_runtime \
        -lf="$srcdir/license.plist" \
        -rp="$srcdir/runtimes" \
        -m="base,linux,linuxYYC"
    chmod +x "$srcdir/runtimes/runtime-$_runtime/bin/igor/$_igor"
    # Linux does not ignore upper/lower case
    local -A patch_paths=([cus_input_box]=CUS_input_box
                          [obj_stats_m_button_down]=obj_stats_M_button_down
                          [obj_stats_m_button_up]=obj_stats_M_button_up)
    local obj
    for obj in "${!patch_paths[@]}"
    do
        if [[ -d "$srcdir/Dijeweled-$pkgver/objects/$obj" ]]
        then
            echo "Renaming objects/$obj to objects/${patch_paths[$obj]}..."
            mv "$srcdir/Dijeweled-$pkgver/objects/$obj" "$srcdir/Dijeweled-$pkgver/objects/${patch_paths[$obj]}"
            mv "$srcdir/Dijeweled-$pkgver/objects/${patch_paths[$obj]}/$obj.yy" \
                "$srcdir/Dijeweled-$pkgver/objects/${patch_paths[$obj]}/${patch_paths[$obj]}.yy"
        fi
    done
}

build() {
    cd "$srcdir/Dijeweled-$pkgver"
    # https://github.com/bscotch/igor-build
    "$srcdir/runtimes/runtime-$_runtime/bin/igor/$_igor" linux Package \
        -lf="$srcdir/license.plist" \
        -rp="$srcdir/runtimes/runtime-$_runtime" \
        -project="$srcdir/Dijeweled-$pkgver/bej_temp_remaster.yyp" \
        -runtime="YYC" \
        -tf="Dijeweled-$pkgver.zip"
}

package() {
    depends=(gcc-libs glibc glu hicolor-icon-theme libcurl-gnutls libglvnd libpulse libx11
             libxext libxfixes libxrandr libxxf86vm openal openssl-1.0 zlib)

    cd "$srcdir/Dijeweled-$pkgver"
    mkdir -p "$pkgdir/usr/lib/$pkgname" "$pkgdir/usr/bin"
    bsdtar -x -C "$pkgdir/usr/lib/$pkgname" -f "Dijeweled-$pkgver.zip" --no-same-owner
    install -Dm644 options/linux/icons/64.png "$pkgdir/usr/share/icons/hicolor/64x64/apps/$pkgname.png"
    install -Dm644 "$srcdir/runtimes/runtime-$_runtime/linux/template.desktop" \
        "$pkgdir/usr/share/applications/$pkgname.desktop"
    sed -i "s/\${YYDisplayName}/Dijeweled/g;s/\${YYProjectName}/$pkgname/g;" \
        "$pkgdir/usr/share/applications/$pkgname.desktop"
    ln -srfv "$pkgdir/usr/lib/$pkgname/bej_temp_remaster" "$pkgdir/usr/bin/$pkgname"
    
}