# Maintainer: jc_gargma # Maintainer (Arch): Jelle van der Waa # Contributor (AUR): Graham Edgecombe # # 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.13 _titlepkgver=0.4.6 _objectpkgver=1.4.7 _opensfxpkgver=1.0.5 _openmsxpkgver=1.6 _replayspkgver=0.0.79 pkgrel=1 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 ) sha256sums=('b15c424300c0a056cb6498e4e5d5d8762fbc532ca1ab3feabc1a97a5dff23b28' '24a189cdaf1f78fb6d6caede8f1ab3cedf8ab9f819cd2260a09b2cce4c710d98' '003c7d8a68a2461ac27204a361ffe6eab66e3aff262755b9830c97ce36d6fb65' 'a952148be164c128e4fd3aea96822e5f051edd9a0b1f2c84de7f7628ce3b2e18' 'f097d3a4ccd39f7546f97db3ecb1b8be73648f53b7a7595b86cccbdc1a7557e4' '045da1df8697e2d33ff33b34008f22e7698280aa4639afd1b1fc3c590d5e9956') b2sums=('bd578f2a303331697ee0f5c7c9bb142a805806a7e5c057933eb3382d3b6d86a555c8b361841c33024c957763fd0fbebdabf80cc360b4903054ca91fb9a65fc85' '5f7b36cd1372106923000775307ea7ff8c142c3b1d026d84b86f255a629b0a2ac16a682300999789229a8833d4c7327c858c04710ecddfb97af1858ff121a5c4' '0ac59fbee6d22f832f52f03ad6e4e15bd60ba1955fc7a8f9deaf8fd114483cfdf20cd8ced42494716bf7a1d8dbeb7969cb1fa3852ae11e9afb0819c90ae6d389' '7ddb1437d7e68373f05bd60d77f03971b8a1d6f4280d008d5bf3e86b5d2cb46001a04edddeeb04a06a37801c3afbd35926beb54fe5a72c7fa88b50d0a0b18535' 'fff3ac6d944ed2021645c064de3daf88c11930bf8817e9c8620cfa73f2da076745dd5b5da36b616c8ee7b2ee0272228a88e264bf1ce948509dc90d77a7a87d5d' '4b5c4d96be91055ceff8f5f5f1a894cc2544659983e61ac2f42d655229357b6a368553c1ee45d147cb360c8d54bb0ca78b61a9716efa8d1d7f37cd7c5ba50fa7') 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 } 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" }