blob: 8f0e5c8f25bc06fe76602c15b9c9369869c224ca (
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
|
# Maintainer: AltoXorg <atrl101 AT yahoo DOT com>
_reponame=Shipwright
pkgbase=soh-git
pkgname=(soh-git soh-otr-exporter-git)
pkgver=8.0.5.r207.g53efc22a2
pkgrel=1
arch=("x86_64" "i686" "armv7h" "aarch64")
url="https://shipofharkinian.com/"
_depends_soh=("sdl2" "sdl2_net" "zenity" "libzip" "libpng")
_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=("git+https://github.com/HarbourMasters/${_reponame}.git"
"git+https://github.com/Kenix3/libultraship.git"
"git+https://github.com/HarbourMasters/OTRExporter.git"
"git+https://github.com/HarbourMasters/ZAPDTR.git"
"soh.desktop")
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'25aebd34f6ad49073d8a5ce6915b6fa290470fc6d62a8143abe07a25707ff4a2')
# NOTE: If compiling complains about missing headers, set __generate_headers below to 1
# Changable options for debugging:
__debug=0 # Build with debug flag
__generate_headers=0 # Generate OTR (unnecessary) and asset headers. **requires rom**
if [ "$__debug" = 1 ]; then
options=(debug strip)
fi
SHIP_PREFIX=/opt/soh
pkgver() {
cd "${srcdir}/${_reponame}"
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd "${srcdir}/${_reponame}"
# Init all submodules
git submodule init
git config submodule.libultraship.url "$srcdir/libultraship"
git config submodule.OTRExporter.url "$srcdir/OTRExporter"
git config submodule.ZAPDTR.url "$srcdir/ZAPDTR"
git -c protocol.file.allow=always submodule update
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}"
if [ "$__debug" = 1 ]; 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-git() {
pkgdesc="An unofficial port of The Legend of Zelda Ocarina of Time for PC, Wii U, and Switch (git)"
provides=("soh")
conflicts=("soh")
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}"
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-git() {
pkgdesc="OTR generation tools for SoH. Includes asset XML files needed for generation. (git)"
provides=("soh-otr-exporter")
conflicts=("soh-otr-exporter")
license=("MIT")
depends=("${_depends_soh_otr_exporter[@]}" "${_depends_lus[@]}")
cd "${srcdir}/${_reponame}"
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"
}
|