summaryrefslogtreecommitdiff
path: root/PKGBUILD
blob: 4579bc0936ac9e5722f29f1c70c2727fa02cadf0 (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
# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net>
# Maintainer (Arch):  Jonathan Steel <jsteel at archlinux.org>
# Contributor (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor (Arch): Duck Hunt <vaporeon@tfwno.gf>

# # I maintain this because:
# Arch version lacks additional optimization and hardening flags
# Arch version is broken with lua 5.4
# Arch version does not list lua as a depends
# Arch version does not disable discord

pkgbase=mgba
pkgname=(
  'libmgba'
  'mgba-sdl'
  'mgba-qt'
)
pkgver=0.10.4
pkgrel=2
pkgdesc='A Nintendo Gameboy Advance Emulator focusing on speed and accuracy'
arch=('x86_64')
url='http://mgba.io'
license=('MPL-2.0')
options=('lto')
makedepends=(
  'cmake'
  'desktop-file-utils'
  'ffmpeg'
  'libedit'
  'libpng'
  'libzip'
  'lua53'
  'qt5-multimedia'
  'qt5-tools'
  'sdl2'
  'zlib'
)
optdepends=('lua53: scripting support')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/mgba-emu/mgba/archive/$pkgver.tar.gz")
sha256sums=('f85eeb8f78f847f5217a87bd5e2d6c1214b461ffd4ec129cc656162ab707cb24')
b2sums=('1f99fd1f79e1645f2de8c1fbd07bdc4996fbc12263fd14b3588e0dcccff910780be73ed92084e53ed873f5e55eef70a983afee2f3f0bd166c578a03bcf57ea0b')

build() {
# Workaround for gcc14
  CFLAGS+=" -Wno-incompatible-pointer-types"

  # -fPIE and -pie break compilation
  export CFLAGS="$CFLAGS -O3 -fPIC"
  export CXXFLAGS="$CXXFLAGS -O3 -fPIC"

  cmake -B build -S mgba-$pkgver \
    -DCMAKE_BUILD_TYPE=None \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DUSE_MINIZIP=OFF \
    -DUSE_DISCORD_RPC=OFF \
    -DUSE_EPOXY=OFF \
    -Wno-dev
  cmake --build build
}

package_libmgba() {
  pkgdesc+=' (shared library)'
  depends=(
    'ffmpeg'
    'glibc'
    'libedit'
    'libelf'
    'libglvnd'
    'libpng'
    'libzip'
    'sqlite'
    'zlib'
  )
  DESTDIR="$pkgdir" cmake --install build --component libmgba
  DESTDIR="$pkgdir" cmake --install build --component mgba-dev
}

package_mgba-sdl() {
  depends=(
    'glibc'
    'libmgba'
    'sdl2'
  )
  DESTDIR="$pkgdir" cmake --install build --component mgba-sdl
}

package_mgba-qt() {
  pkgdesc+=' (Qt5 UI)'
  depends=(
    'ffmpeg'
    'gcc-libs'
    'glibc'
    'libglvnd'
    'libmgba'
    'qt5-base'
    'qt5-multimedia'
    'sdl2'
  )
  DESTDIR="$pkgdir" cmake --install build --component mgba-qt

  install -vDm644 mgba-$pkgver/res/mgba-256.png \
    "$pkgdir/usr/share/pixmaps/io.mgba.mGBA.png"
  install -vDm644 mgba-$pkgver/res/mgba-256.png \
    "$pkgdir/usr/share/icons/hicolor/256x256/apps/io.mgba.mGBA.png"
}