summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 52dc3f093e2eaa55dd79830caf98d0c58d06df97 (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
106
107
108
109
110
111
112
113
114
115
116
# Maintainer:
# Contributor: Jonathan Knapp <jaknapp8+aur@gmail.com>
# Contributor: Dmytro Meleshko <dmytro.meleshko@gmail.com>
# Contributor: farseerfc <farseerfc@archlinuxcn.org>
# Contributor: refujee <gmail.com: refujee>
# Contributor: sausageandeggs <archlinux.us: sausageandeggs>
# Contributor: Jesse Jaara <gmail.com: jesse.jaara>

# Select version of Lua. Possible values are luajit, lua51, lua52 and an empty
# string to disable Lua support. luajit is used in the official builds.
: ${_lua=luajit}
: ${_branch=master}

_appexe="powder-toy"
_appid="uk.co.powdertoy.tpt"
_appvendor="powdertoy"

## links
# http://powdertoy.co.uk/
# https://github.com/ThePowderToy/The-Powder-Toy

_pkgname="powder-toy"
pkgname="$_pkgname-git"
pkgver=98.2.365.r43.g6179a73
pkgrel=1
pkgdesc="Desktop version of the classic falling sand physics sandbox, simulates air pressure, velocity & heat!"
url="https://github.com/ThePowderToy/The-Powder-Toy"
license=('GPL-3.0-or-later')
arch=('x86_64' 'i686')

depends=(
  "$_lua"

  bzip2
  curl
  fftw
  glibc
  hicolor-icon-theme
  jsoncpp
  libpng
  sdl2
)
makedepends=(
  git
  meson
)

provides=("$_pkgname=${pkgver%%.r*}")
conflicts=("$_pkgname")

source=("$_pkgname"::"git+$url.git#branch=$_branch")
sha256sums=('SKIP')

pkgver() {
  cd "$_pkgname"
  git describe --tags --long --abbrev=7 --match='v[0-9]*' --exclude='*[A-Za-z][A-Za-z]*' \
    | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

build() {
  cd "$_pkgname"

  local opt_lua opt_sse

  case "$_lua" in
    luajit) opt_lua=luajit ;;
    lua51) opt_lua=lua5.1 ;;
    lua52) opt_lua=lua5.2 ;;
    *) opt_lua=none ;;
  esac

  if grep -q -i pni /proc/cpuinfo; then
    opt_sse=sse3
  elif grep -q -i sse2 /proc/cpuinfo; then
    opt_sse=sse2
  elif grep -q -i sse /proc/cpuinfo; then
    opt_sse=sse
  else
    opt_sse=none
  fi

  local extra_flags=(
    -Dignore_updates=true
    -Dapp_exe="${_appexe}"
    -Dapp_id="${_appid}"
    -Dapp_vendor="${_appvendor}"
    -Dlua="${opt_lua}"
    -Dx86_sse="${opt_sse}"
  )

  echo "building ${pkgname} with the following extra flags: ${extra_flags[*]}"
  arch-meson --buildtype=release build "${extra_flags[@]}"
  meson compile -C build
}

package() {
  cd "$_pkgname"

  install -Dm755 "build/${_appexe}" "${pkgdir}/usr/bin/${_appexe}"
  install -Dm644 "build/resources/powder.desktop" "${pkgdir}/usr/share/applications/${_appid}.desktop"
  install -Dm644 "build/resources/appdata.xml" "${pkgdir}/usr/share/metainfo/${_appid}.appdata.xml"
  install -Dm644 "resources/save.xml" "${pkgdir}/usr/share/mime/packages/${_appvendor}-save.xml"
  install -Dm644 "resources/powder.man" "${pkgdir}/usr/share/man/man6/${_appexe}.6"
  local theme_dir="${pkgdir}/usr/share/icons/hicolor" mimetype="application-vnd.powdertoy.save"
  install -Dm644 "resources/icon_exe.svg" "${theme_dir}/scalable/apps/${_appvendor}-${_appexe}.svg"
  install -Dm644 "resources/icon_cps.svg" "${theme_dir}/scalable/mimetypes/${mimetype}.svg"
  install -Dm644 "resources/generated_icons/icon_exe.png" "${theme_dir}/256x256/apps/${_appvendor}-${_appexe}.png"
  install -Dm644 "resources/generated_icons/icon_cps.png" "${theme_dir}/256x256/mimetypes/${mimetype}.png"
  local icon_size
  for icon_size in 16 32 48; do
    install -Dm644 "resources/generated_icons/icon_exe_${icon_size}.png" \
      "${theme_dir}/${icon_size}x${icon_size}/apps/${_appvendor}-${_appexe}.png"
    install -Dm644 "resources/generated_icons/icon_cps_${icon_size}.png" \
      "${theme_dir}/${icon_size}x${icon_size}/mimetypes/${mimetype}.png"
  done
}