Skip to content

Installation

JonSnowbd edited this page Sep 26, 2021 · 2 revisions

Installing Slingworks to your zig projects is a very simple process. Before we begin, make sure you've installed all of the dependencies Slingworks requires, such as Zig, Fmod, and x11 dev libraries on ubuntu.

Begin your zig project with zig init-exe in your directory, this will set up your executable build.zig steps.

mkdir example
cd example
zig init-exe

Then you submodule Slingworks wherever you want inside your project.

git init
git submodule add https://github.com/JonSnowbd/slingworks src/deps/slingworks
git submodule update --init --recursive

In your build.zig import src/deps/slingworks/build.zig and call into its .link(exe) method to have Slingworks install the necessary binaries to the build output, and add all the packages.

const std = @import("std");
const slingBuild = @import("src/deps/slingworks/build.zig");

pub fn build(b: *std.build.Builder) void {
    const target = b.standardTargetOptions(.{});
    const mode = b.standardReleaseOptions();

    const exe = b.addExecutable("underburrow", "src/main.zig");
    exe.setTarget(target);
    exe.setBuildMode(mode);
    slingBuild.link(exe);
    slingBuild.addBinaryContent("assets") catch unreachable;
    exe.install();

    const run_cmd = exe.run();
    run_cmd.step.dependOn(b.getInstallStep());
    if (b.args) |args| {
        run_cmd.addArgs(args);
    }

    const run_step = b.step("run", "Run the app");
    run_step.dependOn(&run_cmd.step);
}

After this you can test your installation by importing the sling package and calling run like so;

const sling = @import("sling");

pub fn main() void {
    sling.run();
}
Clone this wiki locally