summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 78fa003e0ca4718047850642bc3688a57157ba71 (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
# Maintainer: Zion Nimchuk <zionnimchuk@gmail.com>

## links
# http://melonds.kuribo64.net/
# https://github.com/melonDS-emu/melonDS

: ${_use_clang=true}

pkgname=melonds-git
_gitname=melonDS
pkgver=1.0.r35.g91ab680
pkgrel=1
pkgdesc='DS emulator, sorta'
url="https://github.com/melonDS-emu/melonDS"
license=('GPL-3.0-or-later')
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')

depends=('enet' 'faad2' 'libarchive' 'libslirp' 'qt6-base' 'qt6-multimedia' 'qt6-svg' 'sdl2')
makedepends=('cmake' 'extra-cmake-modules' 'git' 'ninja' 'pkg-config')

if [[ "${_use_clang::1}" == "t" ]]; then
  makedepends+=('clang' 'lld')
else
  options=('!lto')
fi

provides=('melonds')
conflicts=('melonds')

source=("${_gitname}::git+$url.git")
sha256sums=('SKIP')

prepare() {
  cd "${_gitname}"

  # allow Arch build system to control build
  sed -e '/CMAKE_INTERPROCEDURAL_OPTIMIZATION/d' -i CMakeLists.txt
  truncate -s 0 cmake/DefaultBuildFlags.cmake

  # fix for Qt 6.10
  sed -E -e 's&\b(Qt6::)?(Widgets)\b&\1\2 \1GuiPrivate&' -i src/frontend/qt_sdl/CMakeLists.txt
}

pkgver() {
  cd "${_gitname}"
  git describe --long --tags --abbrev=7 --exclude='*[a-zA-Z][a-zA-Z]*' --exclude='*[a-zA-Z]' \
    | sed -E 's/^[^0-9]*//;s/([^-]*-g)/r\1/;s/-/./g'
}

build() {
  export CC CXX CFLAGS CXXFLAGS LDFLAGS
  CFLAGS+=" -DNDEBUG"
  CXXFLAGS+=" -DNDEBUG"

  if [[ "${_use_clang::1}" == "t" ]]; then
    CC=clang
    CXX=clang++
    LDFLAGS="$(sed -E -e 's/\S*fuse-ld\S*//g' <<< "$LDFLAGS") -fuse-ld=lld"
  fi

  local _cmake_options=(
    -B build
    -S "$_gitname"
    -G Ninja
    -DCMAKE_BUILD_TYPE=None
    -DCMAKE_INSTALL_PREFIX='/usr'
    -Wno-dev

    -DUSE_QT6=ON
    -DUSE_SYSTEM_LIBSLIRP=ON
    -DMELONDS_VERSION_SUFFIX=".r${pkgver##*.r}"
  )

  cmake "${_cmake_options[@]}"
  cmake --build build
}

package() {
  DESTDIR="$pkgdir" cmake --install build
}

# vim: ts=2 sw=2 et: