Skip to content

Commit 7ba7e30

Browse files
committed
Use runtime extensions instead of copying into /app
1 parent c4c16d0 commit 7ba7e30

File tree

11 files changed

+205
-46
lines changed

11 files changed

+205
-46
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ SHELL:=/bin/bash -O globstar
44

55
setup:
66
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
7-
flatpak install --or-update --user --noninteractive flathub org.gnome.Sdk//45 org.gnome.Sdk.Docs//45 org.flatpak.Builder org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.node18//23.08 org.freedesktop.Sdk.Extension.vala//23.08
7+
flatpak install --or-update --user --noninteractive flathub org.gnome.Sdk//45 org.gnome.Sdk.Docs//45 org.flatpak.Builder org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.node18//23.08 org.freedesktop.Sdk.Extension.vala//23.08 org.freedesktop.Sdk.Extension.llvm16//23.08
88
npm install
99

1010
lint:
@@ -39,7 +39,7 @@ ci: setup unit lint
3939
# make sure to test without the sdk extensions installed
4040
sandbox: setup
4141
flatpak-builder --ccache --user --install --force-clean flatpak build-aux/re.sonny.Workbench.Devel.json
42-
# flatpak remove --noninteractive org.gnome.Sdk.Docs//45 org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.vala//23.08
42+
# flatpak remove --noninteractive org.gnome.Sdk.Docs//45 org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.vala//23.08 org.freedesktop.Sdk.Extension.llvm16//23.08
4343
flatpak run --command="bash" re.sonny.Workbench.Devel
4444

4545
flatpak: setup

build-aux/re.sonny.Workbench.Devel.json

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@
33
"runtime": "org.gnome.Sdk",
44
"runtime-version": "45",
55
"sdk": "org.gnome.Sdk",
6-
"separate-locales": false,
76
"sdk-extensions": [
87
"org.gnome.Sdk.Docs",
98
"org.freedesktop.Sdk.Extension.vala",
10-
"org.freedesktop.Sdk.Extension.rust-stable"
9+
"org.freedesktop.Sdk.Extension.rust-stable",
10+
"org.freedesktop.Sdk.Extension.llvm16"
1111
],
1212
"build-options": {
13-
"strip": false,
14-
"no-debuginfo": true,
1513
"append-path": "/usr/lib/sdk/vala/bin:/usr/lib/sdk/rust-stable/bin",
1614
"append-ld-library-path": "/usr/lib/sdk/vala/lib"
1715
},
@@ -57,14 +55,6 @@
5755
"type": "dir",
5856
"path": ".."
5957
}
60-
],
61-
"post-install": [
62-
"cp -a /usr/share/runtime/docs/doc/. /app/share/doc/",
63-
"cp -a /usr/lib/sdk/vala/bin/. /app/bin/",
64-
"cp -a /usr/lib/sdk/vala/lib/. /app/lib/",
65-
"true #cp -a /usr/lib/sdk/vala/share/. /app/share/ # org.gnome.Sdk already ships what we need",
66-
"cp -a /usr/lib/sdk/rust-stable/bin/. /app/bin/",
67-
"cp -a /usr/lib/sdk/rust-stable/lib/. /app/lib/"
6858
]
6959
}
7060
]

build-aux/re.sonny.Workbench.json

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@
66
"sdk-extensions": [
77
"org.gnome.Sdk.Docs",
88
"org.freedesktop.Sdk.Extension.vala",
9-
"org.freedesktop.Sdk.Extension.rust-stable"
9+
"org.freedesktop.Sdk.Extension.rust-stable",
10+
"org.freedesktop.Sdk.Extension.llvm16"
1011
],
1112
"build-options": {
12-
"strip": false,
13-
"no-debuginfo": true,
1413
"append-path": "/usr/lib/sdk/vala/bin:/usr/lib/sdk/rust-stable/bin",
1514
"append-ld-library-path": "/usr/lib/sdk/vala/lib"
1615
},
@@ -56,14 +55,6 @@
5655
"type": "dir",
5756
"path": ".."
5857
}
59-
],
60-
"post-install": [
61-
"cp -a /usr/share/runtime/docs/doc/. /app/share/doc/",
62-
"cp -a /usr/lib/sdk/vala/bin/. /app/bin/",
63-
"cp -a /usr/lib/sdk/vala/lib/. /app/lib/",
64-
"#cp -a /usr/lib/sdk/vala/share/. /app/share/",
65-
"cp -a /usr/lib/sdk/rust-stable/bin/. /app/bin/",
66-
"cp -a /usr/lib/sdk/rust-stable/lib/. /app/lib/"
6758
]
6859
}
6960
]

po/POTFILES

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,6 @@ src/langs/css/css.js
6363

6464
src/langs/rust/Compiler.js
6565
troll/src/async.js
66-
src/lib/prettier-estree.js
66+
src/lib/prettier-estree.js
67+
src/Extensions.blp
68+
src/Extensions.js

src/DocumentationViewer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export default function DocumentationViewer({ application }) {
5656
const search_page = builder.get_object("search_page");
5757
const search_entry = builder.get_object("search_entry");
5858

59-
const base_path = Gio.File.new_for_path("/app/share/doc");
59+
const base_path = Gio.File.new_for_path("/usr/share/doc");
6060

6161
const user_content_manager = webview.get_user_content_manager();
6262

src/Extensions.blp

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
using Gtk 4.0;
2+
using Adw 1;
3+
4+
Adw.Window window {
5+
hide-on-close: true;
6+
modal: false;
7+
default-height: 700;
8+
default-width: 700;
9+
10+
Adw.ToolbarView {
11+
extend-content-to-top-edge: true;
12+
[top]
13+
Adw.HeaderBar {
14+
show-title: false;
15+
}
16+
17+
content: Adw.StatusPage {
18+
title: _("Extensions");
19+
20+
Adw.Clamp {
21+
Box {
22+
orientation: vertical;
23+
spacing: 12;
24+
25+
Box {
26+
orientation: vertical;
27+
28+
29+
Label {
30+
label: _("Rust language support");
31+
xalign: 0;
32+
styles [
33+
"heading"
34+
]
35+
}
36+
37+
Label {
38+
margin-top: 8;
39+
label: _("To enable Rust run the following command in your Console or Terminal.");
40+
xalign: 0;
41+
styles [
42+
"dim-label"
43+
]
44+
}
45+
46+
Label {
47+
margin-top: 2;
48+
use-markup: true;
49+
wrap: true;
50+
selectable: true;
51+
xalign: 0;
52+
label: "flatpak install flathub org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.llvm16//23.08";
53+
54+
styles [
55+
"code",
56+
"view",
57+
"frame",
58+
"monospace"
59+
]
60+
}
61+
}
62+
63+
Box {
64+
orientation: vertical;
65+
66+
67+
Label {
68+
label: _("Vala language support");
69+
xalign: 0;
70+
styles [
71+
"heading"
72+
]
73+
}
74+
75+
Label {
76+
margin-top: 8;
77+
label: _("To enable Vala run the following command in your Console or Terminal.");
78+
xalign: 0;
79+
styles [
80+
"dim-label"
81+
]
82+
}
83+
84+
85+
Label {
86+
margin-top: 2;
87+
use-markup: true;
88+
wrap: true;
89+
selectable: true;
90+
xalign: 0;
91+
label: "flatpak install flathub org.freedesktop.Sdk.Extension.vala//23.08";
92+
93+
styles [
94+
"code",
95+
"view",
96+
"frame",
97+
"monospace"
98+
]
99+
}
100+
}
101+
102+
Box {
103+
orientation: vertical;
104+
105+
Label {
106+
label: _("Documentation and API references");
107+
xalign: 0;
108+
styles [
109+
"heading"
110+
]
111+
}
112+
113+
Label {
114+
margin-top: 8;
115+
label: _("To enable offline documentation run the following command in your Console or Terminal.");
116+
xalign: 0;
117+
styles [
118+
"dim-label"
119+
]
120+
}
121+
122+
Label {
123+
margin-top: 2;
124+
use-markup: true;
125+
wrap: true;
126+
selectable: true;
127+
xalign: 0;
128+
label: "flatpak install flathub org.gnome.Sdk.Docs//45";
129+
130+
styles [
131+
"code",
132+
"view",
133+
"frame",
134+
"monospace"
135+
]
136+
}
137+
}
138+
139+
Box {
140+
margin-top: 18;
141+
halign: center;
142+
Image {
143+
icon-name: "refresh-large-symbolic";
144+
margin-end: 12;
145+
}
146+
Label {
147+
label: "To apply changes, restart Workbench\nonce the commands have completed.";
148+
styles [
149+
"heading"
150+
]
151+
}
152+
}
153+
}
154+
}
155+
};
156+
}
157+
}

src/Extensions.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import Gio from "gi://Gio";
2+
import Gtk from "gi://Gtk";
3+
4+
import resource from "./Extensions.blp";
5+
6+
export default function Extensions({ application }) {
7+
const builder = Gtk.Builder.new_from_resource(resource);
8+
const window = builder.get_object("window");
9+
10+
const action_extensions = new Gio.SimpleAction({
11+
name: "extensions",
12+
parameter_type: null,
13+
});
14+
action_extensions.connect("activate", () => {
15+
window.present();
16+
});
17+
application.add_action(action_extensions);
18+
}

src/application.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Actions from "./actions.js";
66
import { settings, data_dir, ensureDir, getDemo } from "./util.js";
77
import { overrides } from "./overrides.js";
88
import Library from "./Library/Library.js";
9+
import Extensions from "./Extensions.js";
910
import DocumentationViewer from "./DocumentationViewer.js";
1011
import { Session, createSessionFromDemo, getSessions } from "./sessions.js";
1112

@@ -36,6 +37,10 @@ application.connect("startup", () => {
3637
application,
3738
});
3839

40+
Extensions({
41+
application,
42+
});
43+
3944
DocumentationViewer({
4045
application,
4146
});

src/meson.build

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,6 @@ blueprint_compiler = find_program(
1515
install_subdir('Library/demos', install_dir : join_paths(pkgdatadir, 'Library'))
1616
install_subdir('langs/rust/template', install_dir : join_paths(pkgdatadir, 'langs/rust'))
1717

18-
19-
output = run_command('../build-aux/list-demo-blp-files.sh', check: true)
20-
blueprint_files = output.stdout().strip().split('\n')
21-
message('blueprint files: @0@'.format(blueprint_files))
22-
23-
custom_target('blueprints',
24-
input: blueprint_files,
25-
output: '.',
26-
install: true,
27-
install_dir: pkgdatadir,
28-
command: [
29-
blueprint_compiler,
30-
'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'
31-
],
32-
)
33-
3418
configure_file(
3519
input: 'bin.js',
3620
output: app_id,

src/window.blp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,11 @@ menu menu_app {
561561
}
562562
}
563563

564+
item {
565+
label: _("Extensions");
566+
action: "app.extensions";
567+
}
568+
564569
item {
565570
label: _("Manuals");
566571
action: "app.documentation";

0 commit comments

Comments
 (0)