aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/build/GhosttyWebdata.zig
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-04 19:22:04 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-05 01:23:06 +0300
commit41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch)
tree3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/src/build/GhosttyWebdata.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/src/build/GhosttyWebdata.zig')
-rw-r--r--vendor/libghostty-vt/src/build/GhosttyWebdata.zig119
1 files changed, 119 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/build/GhosttyWebdata.zig b/vendor/libghostty-vt/src/build/GhosttyWebdata.zig
new file mode 100644
index 00000000..e29b20c2
--- /dev/null
+++ b/vendor/libghostty-vt/src/build/GhosttyWebdata.zig
@@ -0,0 +1,119 @@
+//! GhosttyWebdata generates all the Ghostty website data that is
+//! merged with the website for things like config references.
+const GhosttyWebdata = @This();
+
+const std = @import("std");
+const SharedDeps = @import("SharedDeps.zig");
+
+steps: []*std.Build.Step,
+
+pub fn init(
+ b: *std.Build,
+ deps: *const SharedDeps,
+) !GhosttyWebdata {
+ var steps: std.ArrayList(*std.Build.Step) = .empty;
+ errdefer steps.deinit(b.allocator);
+
+ {
+ const webgen_config = b.addExecutable(.{
+ .name = "webgen_config",
+ .root_module = b.createModule(.{
+ .root_source_file = b.path("src/main.zig"),
+ .target = b.graph.host,
+ .strip = false,
+ .omit_frame_pointer = false,
+ .unwind_tables = .sync,
+ }),
+ });
+ deps.help_strings.addImport(webgen_config);
+
+ {
+ const buildconfig = config: {
+ var copy = deps.config.*;
+ copy.exe_entrypoint = .webgen_config;
+ break :config copy;
+ };
+
+ const options = b.addOptions();
+ try buildconfig.addOptions(options);
+ webgen_config.root_module.addOptions("build_options", options);
+ }
+
+ const webgen_config_step = b.addRunArtifact(webgen_config);
+ const webgen_config_out = webgen_config_step.captureStdOut();
+
+ try steps.append(b.allocator, &b.addInstallFile(
+ webgen_config_out,
+ "share/ghostty/webdata/config.mdx",
+ ).step);
+ }
+
+ {
+ const webgen_actions = b.addExecutable(.{
+ .name = "webgen_actions",
+ .root_module = b.createModule(.{
+ .root_source_file = b.path("src/main.zig"),
+ .target = b.graph.host,
+ }),
+ });
+ deps.help_strings.addImport(webgen_actions);
+
+ {
+ const buildconfig = config: {
+ var copy = deps.config.*;
+ copy.exe_entrypoint = .webgen_actions;
+ break :config copy;
+ };
+
+ const options = b.addOptions();
+ try buildconfig.addOptions(options);
+ webgen_actions.root_module.addOptions("build_options", options);
+ }
+
+ const webgen_actions_step = b.addRunArtifact(webgen_actions);
+ const webgen_actions_out = webgen_actions_step.captureStdOut();
+
+ try steps.append(b.allocator, &b.addInstallFile(
+ webgen_actions_out,
+ "share/ghostty/webdata/actions.mdx",
+ ).step);
+ }
+
+ {
+ const webgen_commands = b.addExecutable(.{
+ .name = "webgen_commands",
+ .root_module = b.createModule(.{
+ .root_source_file = b.path("src/main.zig"),
+ .target = b.graph.host,
+ }),
+ });
+ deps.help_strings.addImport(webgen_commands);
+
+ {
+ const buildconfig = config: {
+ var copy = deps.config.*;
+ copy.exe_entrypoint = .webgen_commands;
+ break :config copy;
+ };
+
+ const options = b.addOptions();
+ try buildconfig.addOptions(options);
+ webgen_commands.root_module.addOptions("build_options", options);
+ }
+
+ const webgen_commands_step = b.addRunArtifact(webgen_commands);
+ const webgen_commands_out = webgen_commands_step.captureStdOut();
+
+ try steps.append(b.allocator, &b.addInstallFile(
+ webgen_commands_out,
+ "share/ghostty/webdata/commands.mdx",
+ ).step);
+ }
+
+ return .{ .steps = steps.items };
+}
+
+pub fn install(self: *const GhosttyWebdata) void {
+ const b = self.steps[0].owner;
+ for (self.steps) |step| b.getInstallStep().dependOn(step);
+}