diff --git a/build.zig b/build.zig index 66bff8d..b7a7e6d 100644 --- a/build.zig +++ b/build.zig @@ -27,53 +27,51 @@ pub fn build(b: *std.Build) void { return; } + // This comes from the libomt build scripts + const omt_out_path = "3rd/libomt/bin/Release/net8.0/linux-x64/publish/"; + + // Build libomtnet + const libomtnet_build_script = b.addSystemCommand(&.{"bash"}); + libomtnet_build_script.cwd = b.path("3rd/libomtnet/build"); + libomtnet_build_script.addFileArg(b.path("3rd/libomtnet/build/buildall.sh")); + + // Build libomt + const libomt_build_script = b.addSystemCommand(&.{"bash"}); + libomt_build_script.cwd = b.path("3rd/libomt/build"); + libomt_build_script.addFileArg(b.path("3rd/libomt/build/buildlinuxx64.sh")); + libomt_build_script.step.dependOn(&libomtnet_build_script.step); + + // Install libomt + const install_omt_h = b.addInstallHeaderFile( + b.path(b.pathJoin(&.{ omt_out_path, "libomt.h" })), + "libomt.h", + ); + install_omt_h.step.dependOn(&libomt_build_script.step); + + const install_omt_so = b.addInstallLibFile( + b.path(b.pathJoin(&.{ omt_out_path, "libomt.so" })), + "libomt.so", + ); + install_omt_so.step.dependOn(&libomt_build_script.step); + + // Build libvmx + const libvmx_build = b.addSystemCommand(&.{"bash"}); + libvmx_build.cwd = b.path("3rd/libvmx/build"); + libvmx_build.addFileArg(b.path("3rd/libvmx/build/buildlinuxx64.sh")); + + // Install libvmx + const install_vmx_so = b.addInstallLibFile( + b.path("3rd/libvmx/build/libvmx.so"), + "libvmx.so", + ); + install_vmx_so.step.dependOn(&libvmx_build.step); + { - // This comes from the libomt build scripts - const omt_out_path = "3rd/libomt/bin/Release/net8.0/linux-x64/publish/"; - - // Build libomtnet - const libomtnet_build_script = b.addSystemCommand(&.{"bash"}); - libomtnet_build_script.cwd = b.path("3rd/libomtnet/build"); - libomtnet_build_script.addFileArg(b.path("3rd/libomtnet/build/buildall.sh")); - - // Build libomt - const libomt_build_script = b.addSystemCommand(&.{"bash"}); - libomt_build_script.cwd = b.path("3rd/libomt/build"); - libomt_build_script.addFileArg(b.path("3rd/libomt/build/buildlinuxx64.sh")); - libomt_build_script.step.dependOn(&libomtnet_build_script.step); - - // Install libomt - const install_omt_h = b.addInstallHeaderFile( - b.path(b.pathJoin(&.{ omt_out_path, "libomt.h" })), - "libomt.h", - ); - install_omt_h.step.dependOn(&libomt_build_script.step); - - const install_omt_so = b.addInstallLibFile( - b.path(b.pathJoin(&.{ omt_out_path, "libomt.so" })), - "libomt.so", - ); - install_omt_so.step.dependOn(&libomt_build_script.step); - - // Build libvmx - const libvmx_build = b.addSystemCommand(&.{"bash"}); - libvmx_build.cwd = b.path("3rd/libvmx/build"); - libvmx_build.addFileArg(b.path("3rd/libvmx/build/buildlinuxx64.sh")); - - // Install libvmx - const install_vmx_so = b.addInstallLibFile( - b.path("3rd/libvmx/build/libvmx.so"), - "libvmx.so", - ); - install_vmx_so.step.dependOn(&libvmx_build.step); - - { - // Manual build step for libomt dependencies - const build_omt_step = b.step("omt", "Build libomtnet, libomt and libvmx"); - build_omt_step.dependOn(&install_omt_h.step); - build_omt_step.dependOn(&install_omt_so.step); - build_omt_step.dependOn(&install_vmx_so.step); - } + // Manual build step for libomt dependencies + const build_omt_step = b.step("omt", "Build libomtnet, libomt and libvmx"); + build_omt_step.dependOn(&install_omt_h.step); + build_omt_step.dependOn(&install_omt_so.step); + build_omt_step.dependOn(&install_vmx_so.step); } // The output lib and header directories @@ -85,27 +83,45 @@ pub fn build(b: *std.Build) void { }; // Zig omt module - const omt_module = b.addModule("omt", .{ + const omt_mod = b.addModule("omt", .{ .root_source_file = b.path("src/omt.zig"), .target = target, .optimize = optimize, }); - omt_module.linkSystemLibrary("omt", .{}); - omt_module.addLibraryPath(lib_output_path); - omt_module.addIncludePath(include_output_path); + omt_mod.linkSystemLibrary("omt", .{}); + omt_mod.addLibraryPath(lib_output_path); + omt_mod.addIncludePath(include_output_path); + // Main executable + const omtoy_exe = b.addExecutable(.{ + .name = "omtoy", + .root_module = b.createModule(.{ + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }), + }); + + b.installArtifact(omtoy_exe); + + const omtoy_run_step = b.step("run", "Run omtoy"); + const omtoy_run = b.addRunArtifact(omtoy_exe); + omtoy_run_step.dependOn(&omtoy_run); + omtoy_run.step.dependOn(b.getInstallStep()); + + // Util executables { // Define executables const sender_exe = b.addExecutable(.{ - .name = "omtoy-sender", + .name = "sender", .root_module = b.createModule(.{ - .root_source_file = b.path("src/sender.zig"), + .root_source_file = b.path("utils/sender.zig"), .target = target, .optimize = optimize, }), }); - sender_exe.root_module.addImport("omt", omt_module); + sender_exe.root_module.addImport("omt", omt_mod); sender_exe.root_module.addLibraryPath(lib_output_path); sender_exe.root_module.addIncludePath(include_output_path); @@ -128,14 +144,14 @@ pub fn build(b: *std.Build) void { { const receiver_exe = b.addExecutable(.{ - .name = "omtoy-receiver", + .name = "receiver", .root_module = b.createModule(.{ - .root_source_file = b.path("src/receiver.zig"), + .root_source_file = b.path("utils/receiver.zig"), .target = target, .optimize = optimize, }), }); - receiver_exe.root_module.addImport("omt", omt_module); + receiver_exe.root_module.addImport("omt", omt_mod); receiver_exe.root_module.addLibraryPath(lib_output_path); receiver_exe.root_module.addIncludePath(include_output_path); @@ -154,7 +170,6 @@ pub fn build(b: *std.Build) void { run_receiver_cmd.addArgs(args); } } - // TODO: write tests and stuff // const exe_tests = b.addTest(.{ // .root_module = sender_exe.root_module, diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..3b5d940 --- /dev/null +++ b/src/main.zig @@ -0,0 +1,6 @@ +const std = @import("std"); +const omt = @import("omt.zig"); + +pub fn main() void { + std.log.info("Starting omtoy...", .{}); +} diff --git a/src/omt.zig b/src/omt.zig index 61cb352..3ad58d4 100644 --- a/src/omt.zig +++ b/src/omt.zig @@ -25,3 +25,7 @@ pub fn colorSpaceToString(cs: c.OMTColorSpace) []const u8 { else => "Invalid", }; } + +pub fn whaaat() void { + std.log.info("Whaaaat", .{}); +} diff --git a/src/receiver.zig b/utils/receiver.zig similarity index 100% rename from src/receiver.zig rename to utils/receiver.zig diff --git a/src/sender.zig b/utils/sender.zig similarity index 100% rename from src/sender.zig rename to utils/sender.zig