summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 7cb2027ef33253a8be572f65877746dfae2a57b5 (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
# Maintainer: Mark Austin <ganthore@gmail.com>
pkgname=qmidigen
pkgver=0.1.4
pkgrel=1
pkgdesc='Procedural MIDI music generator with JRPG-style compositions'
arch=('x86_64' 'aarch64')
url='https://gitlab.com/ganthore/qmidigen'
license=('MIT' 'LicenseRef-GeneralUser-GS')
depends=(
    'qt6-declarative'
    'qt6-wayland'
    'fluidsynth'
)
makedepends=(
    'cargo'
    'cmake'
    'ninja'
    'pkgconf'
)
optdepends=(
    'ffmpeg: non-WAV audio export (MP3, FLAC, OGG, AAC, MP4)'
    'kdialog: native KDE file dialogs'
)
# Update b2sums after tagging v${pkgver} with: updpkgsums
source=("${pkgname}-${pkgver}.tar.gz::https://gitlab.com/ganthore/qmidigen/-/archive/v${pkgver}/qmidigen-v${pkgver}.tar.gz")
b2sums=('SKIP')
options=('!lto' 'debug')

prepare() {
    # GitLab tag archives sometimes include the commit hash in the dir name;
    # normalise to a predictable path.
    if [ -d "${srcdir}/qmidigen-v${pkgver}" ]; then
        ln -sf "qmidigen-v${pkgver}" "${srcdir}/${pkgname}-${pkgver}"
    else
        mv "${srcdir}/qmidigen-v${pkgver}"* "${srcdir}/${pkgname}-${pkgver}"
    fi
    cd "${srcdir}/${pkgname}-${pkgver}"
    export CARGO_HOME="${srcdir}/.cargo"
    cargo fetch --target "$(rustc -vV | sed -n 's/host: //p')"
}

build() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    export CARGO_HOME="${srcdir}/.cargo"
    export CARGO_TARGET_DIR="${srcdir}/target"
    export RUSTUP_TOOLCHAIN=stable
    cargo build --frozen --release
}

package() {
    cd "${srcdir}/${pkgname}-${pkgver}"

    install -Dm755 "${srcdir}/target/release/qmidigen" \
        "${pkgdir}/usr/bin/qmidigen"

    install -Dm644 "assets/com.qmidigen.QMidiGen.desktop" \
        "${pkgdir}/usr/share/applications/com.qmidigen.QMidiGen.desktop"

    install -Dm644 "assets/icon.svg" \
        "${pkgdir}/usr/share/icons/hicolor/scalable/apps/com.qmidigen.QMidiGen.svg"

    local s
    for s in 16 32 48 64 128 256 512; do
        install -Dm644 "assets/icon_${s}.png" \
            "${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/com.qmidigen.QMidiGen.png"
    done

    install -Dm644 "assets/soundfonts/GeneralUser-GS.sf2" \
        "${pkgdir}/usr/share/qmidigen/soundfonts/GeneralUser-GS.sf2"

    install -Dm644 LICENSE \
        "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

    install -Dm644 "assets/soundfonts/GeneralUser-GS-LICENSE.txt" \
        "${pkgdir}/usr/share/licenses/${pkgname}/GeneralUser-GS-LICENSE.txt"
}