summaryrefslogtreecommitdiff
path: root/PKGBUILD
blob: 3e31117eb3741ba979486115ae31458d528cbca4 (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
# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net>
# Maintainer (Arch): Sven-Hendrik Haase <svenstaro@gmail.com>
# Contributor (Arch): Sandy Carter <bwrsandman@gmail.com>

# # I maintain this because:
# Arch version lacks additional optimization and hardening flags
# Arch version does not use system bullet
# Arch version does not use system recastnavigation
# Arch version cannot be built offline
# Arch version segfaults when loading save games due to -Wp,-D_GLIBCXX_ASSERTIONS

pkgname=openmw
pkgver=0.48.0
pkgrel=3
pkgdesc="Open-source engine reimplementation for the role-playing game Morrowind"
arch=('x86_64')
url="http://www.openmw.org"
license=('GPL3' 'MIT' 'custom')
depends=('openal' 'openscenegraph' 'mygui' 'qt5-base' 'ffmpeg' 'sdl2' 'unshield'
         'libxt' 'boost-libs' 'bullet-dp' 'yaml-cpp' 'luajit'
         'recastnavigation-openmw')
makedepends=('cmake' 'boost' 'doxygen' 'ninja')
options=(lto)
source=("https://github.com/OpenMW/openmw/archive/openmw-${pkgver}.tar.gz")
sha512sums=('969c10b285c039b54810c56f202f9c33bd03c83d87fec722c3389525e87fc7104760ea12527be5fb19a3f7ae2dc9aef0e4c6b7375d8bbcd6eb726e1d7859b833')
b2sums=('6a6f710f06efc0e844115018365db8148e9f6acefd453df74904144f53f5e896e9ab4d4f563ab95a3231500a2c1a5e1f8c5b6d6ac5c1315805c61657d13a7aa8')


build() {
  cd ${pkgname}-${pkgname}-${pkgver}

  # gcc 10.2 + qt 5.15 + pie = segfault
  export CFLAGS="$CFLAGS -O3"
  export CXXFLAGS="$CXXFLAGS -O3"

  # Prevent segfaults when loading a save game
  #export CXXFLAGS="$(echo $CXXFLAGS | sed -i 's/-Wp,-D_GLIBCXX_ASSERTIONS//' - )" # No longer works
  export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wp,-D_GLIBCXX_ASSERTIONS//')"

  cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -GNinja \
    -DOPENMW_USE_SYSTEM_BULLET=ON \
    -DOPENMW_USE_SYSTEM_OSG=ON \
    -DOPENMW_USE_SYSTEM_MYGUI=ON \
    -DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON \
    -DOpenGL_GL_PREFERENCE=GLVND \
    -Bbuild
  ninja -C build "$MAKEFLAGS"
}

package() {
  cd ${pkgname}-${pkgname}-${pkgver}
  DESTDIR="$pkgdir" ninja -C build install
}