blob: d14b2acf8641471fcccee795efb8820a761865cd (
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
|
# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net>
# Maintainer (Arch): Jelle van der Waa <jelle@archlinux.org>
# Contributor (AUR): Graham Edgecombe <graham@grahamedgecombe.com>
# # I maintain this because:
# Arch version lacks additional optimization and hardening flags
# Arch version builds with discord, benchmark, update checks, online tests, ccache
# Arch version cannot be built offline
pkgname=openrct2
pkgver=0.4.11
_titlepkgver=0.4.6
_objectpkgver=1.4.4
_opensfxpkgver=1.0.5
_openmsxpkgver=1.5
_replayspkgver=0.0.79
pkgrel=2
pkgdesc='Open source re-implementation of Roller Coaster Tycoon 2 (requires full copy of the game)'
arch=('x86_64' 'i686' 'armv7h' 'aarch64')
url='https://openrct2.io'
license=('GPL3')
depends=('hicolor-icon-theme' 'sdl2' 'speexdsp'
'fontconfig' 'libpng' 'libzip' 'icu'
'libogg' 'libvorbis' 'flac')
makedepends=('cmake' 'nlohmann-json')
optdepends=('zenity: System dialog box support (GNOME/GTK)'
'kdialog: System dialog box support (KDE)'
'alsa-lib: ALSA audio driver'
'libpulse: PulseAudio audio driver')
options=('lto')
install=openrct2.install
source=($pkgname-$pkgver.tar.gz::https://github.com/OpenRCT2/OpenRCT2/archive/v${pkgver}.tar.gz
$pkgname-title-sequences-$_titlepkgver.zip::https://github.com/OpenRCT2/title-sequences/releases/download/v${_titlepkgver}/title-sequences.zip
$pkgname-objects-$_objectpkgver.zip::https://github.com/OpenRCT2/objects/releases/download/v${_objectpkgver}/objects.zip
$pkgname-opensfx-$_opensfxpkgver.zip::https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${_opensfxpkgver}/opensound.zip
$pkgname-openmsx-$_openmsxpkgver.zip::https://github.com/OpenRCT2/OpenMusic/releases/download/v${_openmsxpkgver}/openmusic.zip
$pkgname-replays-$_replayspkgver.zip::https://github.com/OpenRCT2/replays/releases/download/v${_replayspkgver}/replays.zip
add-algorithm-include-gcc-14.patch
)
sha256sums=('d6211dc9651b43315c5d22e30aa41e582bb861d2541b82bb65de8f4f95f0cdef'
'24a189cdaf1f78fb6d6caede8f1ab3cedf8ab9f819cd2260a09b2cce4c710d98'
'da017b90a3870649cb4ff22e14edfc746259af048967311d1133cf4c836ae5a0'
'a952148be164c128e4fd3aea96822e5f051edd9a0b1f2c84de7f7628ce3b2e18'
'c3fac4caa90398a2b4c5bb32e0dd0f44073086fe16121d3dc49b3ca120474068'
'045da1df8697e2d33ff33b34008f22e7698280aa4639afd1b1fc3c590d5e9956'
'c894771e782df348919646506504676506f9d49eecb1d84486d8589055c8e59f')
b2sums=('16647324f46aadd8b193dc703619836553e69c45b41a541b4c5670e37321c5ea5a6d9cf4a9ed1f669c25d9e9f178f28e806c9535e42a8be3d7212a1e92a4503e'
'5f7b36cd1372106923000775307ea7ff8c142c3b1d026d84b86f255a629b0a2ac16a682300999789229a8833d4c7327c858c04710ecddfb97af1858ff121a5c4'
'6e17659902dc76ab595ed68fc696eba64ac9add6212cbbd945abafe0d178e183410506543509135f2c1c5d2a1e0dfddd287c4f2b80e7d4bc794596844658f26d'
'7ddb1437d7e68373f05bd60d77f03971b8a1d6f4280d008d5bf3e86b5d2cb46001a04edddeeb04a06a37801c3afbd35926beb54fe5a72c7fa88b50d0a0b18535'
'11cf46a54716097038e134ae11aeb23823097ca96189dabeb0e43d7050d5e776aa309c38de247da15b1eec7ed6be6299d5673a92df1323cc3a4a5bbc4f48d567'
'4b5c4d96be91055ceff8f5f5f1a894cc2544659983e61ac2f42d655229357b6a368553c1ee45d147cb360c8d54bb0ca78b61a9716efa8d1d7f37cd7c5ba50fa7'
'dbe21a82a6650496d94d58d8133998c099c87844f204e3fae3d4eca372a33953eb58fabec544589b3f0ebd98f8ac10efdc2c37ba4e5d30cae513d87520ba66c5')
prepare() {
cd "$srcdir/OpenRCT2-$pkgver"
# Add titles data
mkdir data/sequence
cp -r --reflink $srcdir/*.parkseq data/sequence
# Add objects data
mkdir data/object
cp -r --reflink $srcdir/official data/object
cp -r --reflink $srcdir/rct1 data/object
cp -r --reflink $srcdir/rct2 data/object
cp -r --reflink $srcdir/rct2tt data/object
cp -r --reflink $srcdir/rct2ww data/object
# Add opensfx data
mkdir data/assetpack
mkdir data/object/official/audio
cp -r --reflink $srcdir/assetpack/openrct2.sound.parkap data/assetpack/
cp -r --reflink $srcdir/object/official/audio/openrct2.audio.additional.parkobj data/object/official/audio/
# Add openmsx data
mkdir data/object/official/music
cp -r --reflink $srcdir/assetpack/openrct2.music.alternative.parkap data/assetpack/
cp -r --reflink $srcdir/object/official/music/*.parkobj data/object/official/music/
# Add replays data
mkdir -p testdata/replays
cp -r --reflink $srcdir/*.parkrep testdata/replays
mkdir -p build
# Workaround for gcc14
patch -Np1 -i ${srcdir}/add-algorithm-include-gcc-14.patch
}
build() {
cd "$srcdir/OpenRCT2-$pkgver/build"
# Needed to be able to build while LTO is enabled
# https://github.com/OpenRCT2/OpenRCT2/issues/6200
CXXFLAGS+=" -Wno-error=stringop-overflow -Wno-error=nonnull"
# Required options to workaround GCC 12 issues
# https://github.com/OpenRCT2/OpenRCT2/issues/17371
CXXFLAGS+=" -Wno-error=maybe-uninitialized -Wno-error=restrict -Wno-error=null-dereference"
# Required for -DDISABLE_NETWORK as of 0.3.3
CXXFLAGS+=" -Wno-error=unused-const-variable"
export CFLAGS="$CFLAGS -O3 -fstack-protector-all -fPIE"
export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -fPIE"
export LDFLAGS="$LDFLAGS,-pie"
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSTATIC=OFF \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DOPENRCT2_USE_CCACHE=OFF \
-DDOWNLOAD_TITLE_SEQUENCES=OFF \
-DDOWNLOAD_OBJECTS=OFF \
-DDOWNLOAD_OPENSFX=OFF \
-DDOWNLOAD_OPENMSX=OFF \
-DDOWNLOAD_REPLAYS=OFF \
-DDISABLE_DISCORD_RPC=ON \
-DDISABLE_GOOGLE_BENCHMARK=ON \
-DDISABLE_HTTP=ON \
-DDISABLE_NETWORK=ON \
..
make all g2
}
package() {
cd "$srcdir/OpenRCT2-$pkgver/build"
make DESTDIR="$pkgdir" install
rm "$pkgdir/usr/lib/libopenrct2.a"
rmdir "$pkgdir/usr/lib"
}
|