blob: 543be0cff9ffba4b8d23dd190c07700e9f5f6a51 (
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
|
# Maintainer: AltoXorg <atrl101 AT yahoo DOT com>
_reponame=Shipwright
_lus_commit=fdcaf6336776d24a6408d016b0a52243f108f250
_ZAPDTR_commit=ee3397a365c5f350a60538c88f0643f155944836
_OTRExporter_commit=32e088e28c8cdd055d4bb8f3f219d33ad37963f3
pkgbase=soh
pkgname=(soh soh-otr-exporter)
pkgver=9.2.1
pkgrel=1
arch=("x86_64" "i686" "armv7h" "aarch64")
url="https://shipofharkinian.com/"
_depends_soh=("sdl2" "sdl2_net" "zenity" "libzip" "libpng" "libogg" "libvorbis" "opus" "opusfile")
_depends_soh_otr_exporter=("libpng")
_depends_lus=("fmt" "spdlog" "tinyxml2") # libzip could be placed here, but ZAPD.out didn't made to use it
depends=("${_depends_soh[@]}" "${_depends_soh_otr_exporter[@]}" "${_depends_lus[@]}")
makedepends=("git" "cmake" "ninja" "python" "curl" "lsb-release" "boost" "nlohmann-json")
source=("${_reponame}-${pkgver}.tar.gz::https://github.com/HarbourMasters/${_reponame}/archive/refs/tags/${pkgver}.tar.gz"
"libultraship-${_lus_commit:0:8}.tar.gz::https://github.com/Kenix3/libultraship/archive/${_lus_commit}.tar.gz"
"ZAPDTR-${_ZAPDTR_commit:0:8}.tar.gz::https://github.com/HarbourMasters/ZAPDTR/archive/${_ZAPDTR_commit}.tar.gz"
"OTRExporter-${_OTRExporter_commit:0:8}.tar.gz::https://github.com/HarbourMasters/OTRExporter/archive/${_OTRExporter_commit}.tar.gz"
"soh.desktop")
sha256sums=('87bdad98a0978e1920e3f286c9fe98e431fb1c076ef6aab02834c7fa7ab4cfab'
'60add82e2211861075223387e694fc43e0c0dcb2b31a19b8895e0ed0b37250af'
'555cb887dcdf5b9c76fbd703a9928de8792bc3d816253696cd52c2d8f2826601'
'91a863f8899f2ebfc7868ccad4b5982ae416799c76358ce5b2c0edc11e42a672'
'25aebd34f6ad49073d8a5ce6915b6fa290470fc6d62a8143abe07a25707ff4a2')
# NOTE: If compiling complains about missing headers, set __generate_headers below to 1
__generate_headers=0 # Generate OTR (unnecessary) and asset headers. **requires rom**
_is_debug() {
for opt in "${OPTIONS[@]}"; do
if [ "$opt" = debug ]; then
return 0
fi
done
return 1
}
SHIP_PREFIX=/opt/soh
prepare() {
cd "${srcdir}/${_reponame}-${pkgver}"
rm -r libultraship ZAPDTR OTRExporter
cp -r ../libultraship-${_lus_commit} libultraship
cp -r ../ZAPDTR-${_ZAPDTR_commit} ZAPDTR
cp -r ../OTRExporter-${_OTRExporter_commit} OTRExporter
if [ "$__generate_headers" = 1 ]; then
# check for any roms in the directory where PKGBUILD resides
# and copy them to Shipwright/OTRExporter. It doesn't matter
# which rom we'll be using, let extract_assets.py do the guessing.
roms=( "${startdir}/"*.*64 )
if (( "${#roms[@]}" )); then
cp "${roms[@]}" OTRExporter
else
echo "NO ROMS FOUND! Please place them in \"${startdir}\"."
return 1
fi
fi
}
build() {
cd "${srcdir}/${_reponame}-${pkgver}"
if _is_debug; then
BUILD_TYPE=Debug
else
BUILD_TYPE=Release
fi
CFLAGS="${CFLAGS/-Werror=format-security/}" \
CXXFLAGS="${CXXFLAGS/-Werror=format-security/}" \
cmake . \
-Bbuild \
-GNinja \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DNON_PORTABLE=On \
-DCMAKE_INSTALL_PREFIX=$SHIP_PREFIX \
-DBUILD_REMOTE_CONTROL=1
cmake --build build --target ZAPD --config $BUILD_TYPE $NINJAFLAGS
if [ "$__generate_headers" = 1 ]; then
cmake --build build --target ExtractAssetsHeaders $NINJAFLAGS
else
cmake --build build --target GenerateSohOtr $NINJAFLAGS
fi
cmake --build build --target soh --config $BUILD_TYPE $NINJAFLAGS
}
package_soh() {
pkgdesc="An unofficial port of The Legend of Zelda Ocarina of Time for PC, Wii U, and Switch"
depends=("${_depends_soh[@]}" "${_depends_lus[@]}")
license=("unknown")
install=soh.install
optdepends=("soh-otr: OTR asset file in order to run"
"soh-otr-mq: OTR asset file in order to run (Master Quest)")
cd "${srcdir}/${_reponame}-${pkgver}"
DESTDIR="${pkgdir}" cmake --install build --component ship
install -dm755 "${pkgdir}/usr/bin/"
ln -s "${SHIP_PREFIX}/soh.elf" "${pkgdir}/usr/bin/soh"
install -Dm644 "${srcdir}/soh.desktop" -t "${pkgdir}/usr/share/applications"
install -Dm644 soh/macosx/sohIcon.png "${pkgdir}/usr/share/pixmaps/soh.png"
# Copy game documentation
install -dm755 "${pkgdir}/usr/share/doc/soh"
install -Dm644 "README.md" "${pkgdir}/usr/share/doc/soh"
cp -r docs "${pkgdir}/usr/share/doc/soh/docs"
}
package_soh-otr-exporter() {
pkgdesc="OTR generation tools for SoH. Includes asset XML files needed for generation."
license=("MIT")
depends=("${_depends_soh_otr_exporter[@]}" "${_depends_lus[@]}")
cd "${srcdir}/${_reponame}-${pkgver}"
DESTDIR="${pkgdir}" cmake --install build --component extractor
install -dm755 "${pkgdir}/usr/bin"
install -dm755 "${pkgdir}/usr/share/licenses/soh-otr-exporter"
install -Dm644 "OTRExporter/LICENSE" "${pkgdir}/usr/share/licenses/soh-otr-exporter/LICENSE"
}
|