summaryrefslogtreecommitdiff
path: root/snap/snapcraft.yaml
blob: 0a38ca880a4cb4a5525924a705b11fe4e4a9ac20 (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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: hurrycurry
base: core24
version: "2.0.0"
summary: Multiplayer co-op cooking game
license: AGPL-3.0-only
website: https://hurrycurry.metamuffin.org/
issues: https://codeberg.org/hurrycurry/hurrycurry/issues
source-code: https://codeberg.org/hurrycurry/hurrycurry
title: Hurry Curry!
description: |
    This is my-snap's description. You have a paragraph or two to tell the
    most important story about your snap. Keep it under 100 words though,
    we live in tweetspace and your description wants to look good in the snap
    store.

grade: devel # must be 'stable' to release into candidate/stable channels
confinement: devmode # use 'strict' once you have the right plugs and slots

apps:
    bash:
        command: bin/bash
    server:
        command: bin/hurrycurry-server --data-dir $SNAP/usr/share/hurrycurry/data
        plugs:
            - network
            - network-bind
    hurrycurry:
        command: bin/godot --main-pack $SNAP/usr/share/hurrycurry/client.pck
        plugs:
            - audio-playback
            - desktop
            - desktop-legacy
            - joystick
            - network
            - opengl
            - vulkan
            - pulseaudio
            - screen-inhibit-control
            - wayland
            - x11

parts:
    # godot-editor:
    #     plugin: nil
    #     source: https://github.com/godotengine/godot/releases/download/4.3-stable/godot-4.3-stable.tar.xz
    #     build-packages:
    #         - build-essential
    #         - libasound2-dev
    #         - libgl1-mesa-dev
    #         - libglu1-mesa-dev
    #         - libpulse-dev
    #         - libudev-dev
    #         - libx11-dev
    #         - libxcursor-dev
    #         - libxi-dev
    #         - libxinerama-dev
    #         - libxrandr-dev
    #         - pkg-config
    #         - scons
    #     override-build: |
    #         scons platform=x11 use_lto=yes target=editor
    #     organize:
    #         bin/godot.*: bin/godot
    #     stage:
    #         - bin/godot

    godot-editor:
        plugin: dump
        source: https://github.com/godotengine/godot/releases/download/4.3-stable/Godot_v4.3-stable_linux.x86_64.zip
        organize: { "Godot_*": bin/godot }
        stage: [bin/godot]

    godot-runtime:
        plugin: nil
        stage-packages:
            - libpulse0
            - libudev1
            - libx11-6
            - libxcursor1
            - libxi6
            - libxkbcommon0
            - libxinerama1
            - libxrandr2
            - libgl1-mesa-dri
            - libfontconfig1
            - libwayland-client0
            - libwayland-cursor0

    metainfo:
        plugin: dump
        source: https://codeberg.org/hurrycurry/hurrycurry-dist-extra.git
        source-tag: v2.0.0
        parse-info: [org.godotengine.Godot.metainfo.xml]
        prime: [org.metamuffin.hurrycurry.client.desktop]

    client:
        plugin: nil
        after: [godot-editor]
        source: https://codeberg.org/hurrycurry/hurrycurry.git
        build-snaps: [godot-4]
        build-packages: [rustup]
        override-build: |
            make client
            GODOT_SILENCE_ROOT_WARNING=true godot-4 --headless --export-pack wasm32-unknown-unknown $CRAFT_PART_INSTALL/client.pck client/project.godot
        organize: { "client.pck": usr/share/hurrycurry/client.pck }
        prime: [usr/share/hurrycurry/client.pck]

    server:
        plugin: rust
        source: https://codeberg.org/hurrycurry/hurrycurry.git
        source-tag: v2.0.0
        rust-path: [server]

    data:
        plugin: dump
        source: https://codeberg.org/hurrycurry/hurrycurry.git
        source-tag: v2.0.0
        build-packages: [rustup]
        build-snaps: [deno]
        override-build: |
            make data
            mkdir -p $CRAFT_PART_INSTALL/data/{maps,recipes}
            cp -v data/index.yaml $CRAFT_PART_INSTALL/data/index.yaml
            cp -vr data/recipes/*.yaml $CRAFT_PART_INSTALL/data/recipes
            cp -vr data/maps/*.yaml $CRAFT_PART_INSTALL/data/maps
        organize: { "data": usr/share/hurrycurry/data }
        prime: [usr/share/hurrycurry/data]

    bash:
        plugin: nil
        override-build: |
            cp /usr/bin/bash $CRAFT_PART_INSTALL/bash
        organize: { bash: bin/bash }
        prime: [bin/bash]