const std = @import("std"); pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); // Módulo de la librería const zcatui_mod = b.createModule(.{ .root_source_file = b.path("src/root.zig"), .target = target, .optimize = optimize, }); // Tests const unit_tests = b.addTest(.{ .root_module = b.createModule(.{ .root_source_file = b.path("src/root.zig"), .target = target, .optimize = optimize, }), }); const run_unit_tests = b.addRunArtifact(unit_tests); const test_step = b.step("test", "Ejecutar tests"); test_step.dependOn(&run_unit_tests.step); // Ejemplo: hello const hello_exe = b.addExecutable(.{ .name = "hello", .root_module = b.createModule(.{ .root_source_file = b.path("examples/hello.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(hello_exe); const run_hello = b.addRunArtifact(hello_exe); run_hello.step.dependOn(b.getInstallStep()); const hello_step = b.step("hello", "Ejecutar ejemplo hello"); hello_step.dependOn(&run_hello.step); // Ejemplo: events_demo const events_demo_exe = b.addExecutable(.{ .name = "events-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/events_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(events_demo_exe); const run_events_demo = b.addRunArtifact(events_demo_exe); run_events_demo.step.dependOn(b.getInstallStep()); const events_demo_step = b.step("events-demo", "Run events demo"); events_demo_step.dependOn(&run_events_demo.step); // Ejemplo: list_demo const list_demo_exe = b.addExecutable(.{ .name = "list-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/list_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(list_demo_exe); const run_list_demo = b.addRunArtifact(list_demo_exe); run_list_demo.step.dependOn(b.getInstallStep()); const list_demo_step = b.step("list-demo", "Run list demo"); list_demo_step.dependOn(&run_list_demo.step); // Ejemplo: table_demo const table_demo_exe = b.addExecutable(.{ .name = "table-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/table_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(table_demo_exe); const run_table_demo = b.addRunArtifact(table_demo_exe); run_table_demo.step.dependOn(b.getInstallStep()); const table_demo_step = b.step("table-demo", "Run table demo"); table_demo_step.dependOn(&run_table_demo.step); // Ejemplo: dashboard const dashboard_exe = b.addExecutable(.{ .name = "dashboard", .root_module = b.createModule(.{ .root_source_file = b.path("examples/dashboard.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(dashboard_exe); const run_dashboard = b.addRunArtifact(dashboard_exe); run_dashboard.step.dependOn(b.getInstallStep()); const dashboard_step = b.step("dashboard", "Run dashboard demo"); dashboard_step.dependOn(&run_dashboard.step); // Ejemplo: input_demo const input_demo_exe = b.addExecutable(.{ .name = "input-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/input_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(input_demo_exe); const run_input_demo = b.addRunArtifact(input_demo_exe); run_input_demo.step.dependOn(b.getInstallStep()); const input_demo_step = b.step("input-demo", "Run input demo"); input_demo_step.dependOn(&run_input_demo.step); // Ejemplo: animation_demo const animation_demo_exe = b.addExecutable(.{ .name = "animation-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/animation_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(animation_demo_exe); const run_animation_demo = b.addRunArtifact(animation_demo_exe); run_animation_demo.step.dependOn(b.getInstallStep()); const animation_demo_step = b.step("animation-demo", "Run animation demo"); animation_demo_step.dependOn(&run_animation_demo.step); // Ejemplo: clipboard_demo const clipboard_demo_exe = b.addExecutable(.{ .name = "clipboard-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/clipboard_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(clipboard_demo_exe); const run_clipboard_demo = b.addRunArtifact(clipboard_demo_exe); run_clipboard_demo.step.dependOn(b.getInstallStep()); const clipboard_demo_step = b.step("clipboard-demo", "Run clipboard demo"); clipboard_demo_step.dependOn(&run_clipboard_demo.step); // Ejemplo: menu_demo const menu_demo_exe = b.addExecutable(.{ .name = "menu-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/menu_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(menu_demo_exe); const run_menu_demo = b.addRunArtifact(menu_demo_exe); run_menu_demo.step.dependOn(b.getInstallStep()); const menu_demo_step = b.step("menu-demo", "Run menu demo"); menu_demo_step.dependOn(&run_menu_demo.step); // Ejemplo: form_demo const form_demo_exe = b.addExecutable(.{ .name = "form-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/form_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(form_demo_exe); const run_form_demo = b.addRunArtifact(form_demo_exe); run_form_demo.step.dependOn(b.getInstallStep()); const form_demo_step = b.step("form-demo", "Run form demo"); form_demo_step.dependOn(&run_form_demo.step); // Ejemplo: panel_demo const panel_demo_exe = b.addExecutable(.{ .name = "panel-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/panel_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(panel_demo_exe); const run_panel_demo = b.addRunArtifact(panel_demo_exe); run_panel_demo.step.dependOn(b.getInstallStep()); const panel_demo_step = b.step("panel-demo", "Run panel demo"); panel_demo_step.dependOn(&run_panel_demo.step); // Ejemplo: spinner_demo const spinner_demo_exe = b.addExecutable(.{ .name = "spinner-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/spinner_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(spinner_demo_exe); const run_spinner_demo = b.addRunArtifact(spinner_demo_exe); run_spinner_demo.step.dependOn(b.getInstallStep()); const spinner_demo_step = b.step("spinner-demo", "Run spinner demo"); spinner_demo_step.dependOn(&run_spinner_demo.step); // Ejemplo: syntax_demo const syntax_demo_exe = b.addExecutable(.{ .name = "syntax-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/syntax_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(syntax_demo_exe); const run_syntax_demo = b.addRunArtifact(syntax_demo_exe); run_syntax_demo.step.dependOn(b.getInstallStep()); const syntax_demo_step = b.step("syntax-demo", "Run syntax highlighting demo"); syntax_demo_step.dependOn(&run_syntax_demo.step); // Ejemplo: markdown_demo const markdown_demo_exe = b.addExecutable(.{ .name = "markdown-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/markdown_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(markdown_demo_exe); const run_markdown_demo = b.addRunArtifact(markdown_demo_exe); run_markdown_demo.step.dependOn(b.getInstallStep()); const markdown_demo_step = b.step("markdown-demo", "Run markdown viewer demo"); markdown_demo_step.dependOn(&run_markdown_demo.step); // Ejemplo: help_demo const help_demo_exe = b.addExecutable(.{ .name = "help-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/help_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(help_demo_exe); const run_help_demo = b.addRunArtifact(help_demo_exe); run_help_demo.step.dependOn(b.getInstallStep()); const help_demo_step = b.step("help-demo", "Run help keybindings demo"); help_demo_step.dependOn(&run_help_demo.step); // Ejemplo: viewport_demo const viewport_demo_exe = b.addExecutable(.{ .name = "viewport-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/viewport_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(viewport_demo_exe); const run_viewport_demo = b.addRunArtifact(viewport_demo_exe); run_viewport_demo.step.dependOn(b.getInstallStep()); const viewport_demo_step = b.step("viewport-demo", "Run scrollable viewport demo"); viewport_demo_step.dependOn(&run_viewport_demo.step); // Ejemplo: progress_demo const progress_demo_exe = b.addExecutable(.{ .name = "progress-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/progress_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(progress_demo_exe); const run_progress_demo = b.addRunArtifact(progress_demo_exe); run_progress_demo.step.dependOn(b.getInstallStep()); const progress_demo_step = b.step("progress-demo", "Run progress bars demo"); progress_demo_step.dependOn(&run_progress_demo.step); // Ejemplo: dirtree_demo const dirtree_demo_exe = b.addExecutable(.{ .name = "dirtree-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/dirtree_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(dirtree_demo_exe); const run_dirtree_demo = b.addRunArtifact(dirtree_demo_exe); run_dirtree_demo.step.dependOn(b.getInstallStep()); const dirtree_demo_step = b.step("dirtree-demo", "Run directory tree demo"); dirtree_demo_step.dependOn(&run_dirtree_demo.step); // Ejemplo: resize_demo const resize_demo_exe = b.addExecutable(.{ .name = "resize-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/resize_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(resize_demo_exe); const run_resize_demo = b.addRunArtifact(resize_demo_exe); run_resize_demo.step.dependOn(b.getInstallStep()); const resize_demo_step = b.step("resize-demo", "Run resize handling demo"); resize_demo_step.dependOn(&run_resize_demo.step); // Ejemplo: splitter_demo const splitter_demo_exe = b.addExecutable(.{ .name = "splitter-demo", .root_module = b.createModule(.{ .root_source_file = b.path("examples/splitter_demo.zig"), .target = target, .optimize = optimize, .imports = &.{ .{ .name = "zcatui", .module = zcatui_mod }, }, }), }); b.installArtifact(splitter_demo_exe); const run_splitter_demo = b.addRunArtifact(splitter_demo_exe); run_splitter_demo.step.dependOn(b.getInstallStep()); const splitter_demo_step = b.step("splitter-demo", "Run resizable splitter demo"); splitter_demo_step.dependOn(&run_splitter_demo.step); }