summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: b57dbf0db122f643e9957289373ea4cd04d7837e (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
# Maintainer: Benjamin Valdez <b.valdez.0509+aur<at>gmail.com>
# Contributor: Bruce Zhang <zttt183525594<at>gmail.com>
pkgname=inputactions-kwin
pkgver=0.9.0.0
pkgrel=1
pkgdesc="Mouse and touchpad gestures for Plasma 6 Wayland"
arch=('x86_64')
url="https://github.com/InputActions/kwin"
license=('GPL-3.0-or-later')
install=$pkgname.install
backup=("etc/$pkgname/reminder.conf")
depends=(
  'yaml-cpp'
  'bash'
  'libgcc'
  'libstdc++'
  'qt6-base'
  'glibc'
  'libevdev'
  'kwin'
  'kcmutils'
  'kcoreaddons'
  'ki18n'
  "inputactions-ctl=$pkgver"
)
optdepends=('libnotify: to send a reminder when this package needs to be rebuild')
checkdepends=('gtest' 'cmake')
makedepends=('cmake' 'pkgconf' 'extra-cmake-modules' 'git')
provides=('inputactions')
source=(
  "$pkgname-$pkgver.src.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"
  "inputactions-core::git+https://github.com/InputActions/core.git#commit=bc0add8a6e28049570e7cdb6dec94d1597d1c6fe"
  "inputactions-libevdev-cpp::git+https://github.com/InputActions/libevdev-cpp.git#commit=4707a9eab86a686e0c793d0d9510d5d1ac8cb5e1"
  "send-rebuild-reminder"
  "reminder.conf"
  "rebuild-reminder.hook"
)
sha256sums=('aae03398e10708ba08a1610c8ec265dea393fa54a7e5e24474c67ccf177d94e1'
            '6de273d09e7dfddaea0abfc880b80eedda9cdd8c79252c87ce0db5b32f153923'
            'ac267fdcadc34048693785e61c97e3fb3d0665261c09db3d8cca66ea4d6875bc'
            '3ae59b5bea1a0100cc8da51c6a810d70bc989462f2f84beaf6a4f9a06395f62f'
            '57a1e6c7c230c9149e85db13c5dc9f76a4e49c643a03f299750ddc977b36548a'
            '72a8f214c4982110feeb778bf5f915436aa47ff071d301078e6a9459e06a0b13')

prepare() {
  cd $srcdir/kwin-$pkgver/lib
  rmdir core
  ln --symbolic $srcdir/inputactions-core core

  cd $srcdir/inputactions-core/lib
  rmdir libevdev-cpp
  ln --symbolic $srcdir/inputactions-libevdev-cpp libevdev-cpp

  sed \
    --in-place \
    -e "2,/###/{
      s/declare -r pkgname=.*/declare -r pkgname=$pkgname/
      s/declare -r pkgver=.*/declare -r pkgver=$pkgver/
      s/declare -r pkgrel=.*/declare -r pkgrel=$pkgrel/
    }" \
    "$srcdir/send-rebuild-reminder"

  sed --in-place -e "s/\$pkgname/$pkgname/" "$srcdir/rebuild-reminder.hook"
}

build() {
  local cmake_options=(
    -B build
    -S "kwin-$pkgver"
    -W no-dev
    -D CMAKE_BUILD_TYPE=Release
    -D CMAKE_INSTALL_PREFIX=/usr
    -D BUILD_TESTS=ON
  )
  cmake "${cmake_options[@]}"
  cmake --build build --parallel "$(nproc)"
}

check() {
  local ctest_flags=(
    --test-dir build
    # show the stdout and stderr when the test fails
    --output-on-failure
    # execute tests in parallel
    --parallel "$(nproc)"
  )
  ctest "${ctest_flags[@]}"
}

package() {
  DESTDIR="$pkgdir" cmake --install build
  install -Dm 644 "$srcdir/rebuild-reminder.hook" "$pkgdir/usr/share/libalpm/hooks/$pkgname-rebuild-reminder.hook"
  install -Dm 755 "$srcdir/send-rebuild-reminder" -t "$pkgdir/usr/share/libalpm/scripts/"
  install -Dm 644 "$srcdir/reminder.conf" -t "$pkgdir/etc/$pkgname"
}