summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 8f5e6a83995c6fe2b895a09d5e1014526b432080 (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
# Maintainer: catsout <outline941 at live.com>
# Contributor: Epix <epixtm@protonmail.com>
# Contributor: Manuel Hüsers <aur@huesers.de>


pkgname=plasma6-wallpapers-wallpaper-engine-git
pkgver=0.5.4.r102.ged58dd8
pkgrel=2
pkgdesc="A simple kde wallpaper plugin integrating wallpaper engine"
arch=('x86_64')
url="https://github.com/catsout/wallpaper-engine-kde-plugin"
license=('GPL-2.0-only')
depends=("plasma5support" "gst-libav" "python-websockets" "qt6-declarative"
         "qt6-websockets" "qt6-webchannel" "vulkan-driver" "libplasma"
         "kpackage" "qt6-5compat" "qt6-webengine" "qt6-multimedia"
         "plasma-workspace" "kdeclarative" "glfw")
makedepends=("vulkan-headers" "extra-cmake-modules" "git" "cmake" "mpv")
optdepends=("mpv: alternative video backend")
provides=("plasma6-wallpapers-wallpaper-engine")
conflicts=("plasma6-wallpapers-wallpaper-engine")
source=("${pkgname}::git+${url}.git#branch=main"
        "backend_scene::git+https://github.com/catsout/wallpaper-scene-renderer.git"
        "git+https://github.com/KhronosGroup/glslang.git"
        "nlohmann::git+https://github.com/nlohmann/json.git"
        "git+https://github.com/KhronosGroup/SPIRV-Reflect.git"
        "Eigen::git+https://gitlab.com/libeigen/eigen.git"
        "git+https://github.com/mackron/miniaudio.git"
        "git+https://github.com/google/googletest.git")
sha256sums=('SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP')

prepare(){
    declare -ra modules=("${srcdir}/${pkgname}" "${srcdir}/${pkgname}/src/backend_scene"
                         "${srcdir}/${pkgname}/src/backend_scene/third_party/SPIRV-Reflect")
    for p in "${modules[@]}"
    do
        cd "${p}"
        git submodule init
        grep submodule .gitmodules | sed 's/\[submodule "//;s/"\]//' | while read -r module
        do
            repo=$(basename "${module}")
            git config "submodule.${module}.url" "${srcdir}/${repo}"
        done
        git -c protocol.file.allow=always submodule update
    done

    # CMake 3.1 compatibility has been dropped by CMake
    sed -i "1 s/3.1/3.5/" "${srcdir}/${pkgname}/src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt"

    # GCC 15 changes
    sed -i "/#include <stack>/ a #include <cstdint>" "${srcdir}/${pkgname}/src/backend_scene/third_party/glslang/SPIRV/SpvBuilder.h"
}
pkgver(){
    cd "${srcdir}/${pkgname}"
    git describe --tags --long | sed 's/v//;s/-/.r/;s/-/./g'
}
build(){
    echo "Building main program..."
    cmake -B build -S "${srcdir}/${pkgname}" \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_BUILD_TYPE=None \
        -DQT_MAJOR_VERSION=6 \
        -DBUILD_QML=ON \
        -DUSE_PLASMAPKG=OFF
    cmake --build build

    echo "Building sceneviewer..."
    cmake -B build-sceneviewer -S "${srcdir}/${pkgname}/src/backend_scene/standalone_view" \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_BUILD_TYPE=None \
        -DQT_MAJOR_VERSION=6 \
        -DBUILD_QML=ON
    cmake --build build-sceneviewer
}
package(){
    DESTDIR="${pkgdir}" cmake --install build
    install -Dm755 build-sceneviewer/sceneviewer \
        "${pkgdir}/usr/bin/sceneviewer"
    install -Dm755 build-sceneviewer/sceneviewer-qml \
        "${pkgdir}/usr/bin/sceneviewer-qml"
}