# 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 # Arch version cannot be built offline pkgname=openrct2 pkgver=0.4.3 _titlepkgver=0.4.0 _objectpkgver=1.3.7 _opensfxpkgver=1.0.1 _openmsxpkgver=1.0.1 _replayspkgver=0.0.70 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=('1269759b3a90717f379cd375f30629e3f24d3fdeb0c54cc1dca03676e64731ef' '6e7c7b554717072bfc7acb96fd0101dc8e7f0ea0ea316367a05c2e92950c9029' 'd6be9743c68f233674f5549204637b1f0304d7567a816d18e3f1576500a51d38' '47dda0925894a48678e1589410d27bbf932295e5e1be3e9ed6ba1bd62a5e3966' '9f3a171233f7165bc8c66b5c7dfd33f5956dde72ba3a7a9f3ee243c87235c06b' '89156436e51413f180a12d4647406193ac44a509b1ad64d57705f0ae5125b093') b2sums=('37af2ff01f3ad143ab42dc37c95391480272637e163a8721878ac54b001ac49557d4100eaaafb21961ae6abab30b0f60c150bfba88205d2a77e4229e96e35424' '51f07af30c3702754d806829fe612891a883adc70b8e89f64094b28c94879e5c98feca69f3c1f389ceeb33a99175b41afa794a4f2d121280dcce97c428d2ea99' '5e8d88899d997b550df7b34ef6b2788e216861817b49f7c937127f97ec9ea8e02866e768f00e507ccf6310f7cbdce170decf021e1fddae88f219f370aee80f0c' 'b7706e8a93e771729dc84d6e1442cd19fba8f2449b43943e42f65698899c2daaa59a7648d35b7c659d3cab2f50fb1186cb5341590e1551a51c5ee7159d048c19' '8c63edfa39cfdfbe781d3cf31ccbc6fe5505ec3ecdf15be3242216fb41b6ed0887af0f9dda14e8b4495d2378ed4555d418a8d736edaca3c27d69c43d6263dea9' '862eed6955124d5a5fbe289aee8cfaca2b4b13c680174b041d9e6f79cd02fb5b2cae42c8ae5d58493b1896824fdde75a138c071192be6f46463e0ffa293accbf') 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 \ -DDOWNLOAD_TITLE_SEQUENCES=OFF \ -DDOWNLOAD_OBJECTS=OFF \ -DDOWNLOAD_REPLAYS=OFF \ -DDOWNLOAD_OPENSFX=OFF \ -DDOWNLOAD_OPENMSX=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" }