Sha256: f9204226e967e5686c1d4fc0bd155350326d7d3993107bbd47155c70f95cda6b

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

const std = @import("std");

pub fn build(b: *std.Build) void {
    const optimize = b.standardOptimizeOption(.{});
    const target = b.standardTargetOptions(.{});

    var rubylibdir = std.os.getenv("RUBYLIBDIR") orelse "";
    var rubyhdrdir = std.os.getenv("RUBYHDRDIR") orelse "";
    var rubyarchhdrdir = std.os.getenv("RUBYARCHHDRDIR") orelse "";

    ////////////////////////////////////////////////////////////////
    // lib

    const lib = b.addSharedLibrary(.{
        .name = "zigrb_100doors",
        .root_source_file = .{ .path = "src/main.zig" },
        .target = target,
        .optimize = optimize,
    });

    lib.addLibraryPath(rubylibdir);
    lib.addIncludePath(rubyhdrdir);
    lib.addIncludePath(rubyarchhdrdir);

    lib.linkSystemLibrary("ruby");
    lib.linkSystemLibrary("c");

    b.installArtifact(lib);

    ////////////////////////////////////////////////////////////////
    // test

    const unit_tests = b.addTest(.{
        .root_source_file = .{ .path = "src/main.zig" },
        .target = target,
        .optimize = optimize,
    });

    unit_tests.addLibraryPath(rubylibdir);
    unit_tests.addIncludePath(rubyhdrdir);
    unit_tests.addIncludePath(rubyarchhdrdir);

    unit_tests.linkSystemLibrary("ruby");
    unit_tests.linkSystemLibrary("c");

    const run_unit_tests = b.addRunArtifact(unit_tests);
    const test_step = b.step("test", "Run unit tests");
    test_step.dependOn(&run_unit_tests.step);
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
zig_example-0.3.0 ext/zigrb_100doors/build.zig
zig_example-0.2.0 ext/zigrb_100doors/build.zig
zig_example-0.1.0 ext/zigrb_100doors/build.zig