Sha256: a008f52112be6e9e9c45f7d3fc19a41f5921ee3d15fdaf0be30b5a30dee9e110

Contents?: true

Size: 1.46 KB

Versions: 5

Compression:

Stored size: 1.46 KB

Contents

const std = @import("std");

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

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

    const clib = b.addStaticLibrary(.{
        .name = "zigrb_lucas_lehmer",
        .root_source_file = .{ .path = "src/lucas_lehmer.c" },
        .target = target,
        .optimize = optimize,
    });
    clib.force_pic = true;

    clib.linkSystemLibrary("gmp");

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

    lib.linkSystemLibrary(std.os.getenv("RUBY_PC") orelse "ruby");
    lib.linkSystemLibrary("c");

    lib.addIncludePath("src");
    lib.linkLibrary(clib);

    b.installArtifact(lib);

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

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

    unit_tests.linkSystemLibrary(std.os.getenv("RUBY_PC") orelse "ruby");
    unit_tests.linkSystemLibrary("c");

    unit_tests.addIncludePath("src");
    unit_tests.linkLibrary(clib);

    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

5 entries across 5 versions & 1 rubygems

Version Path
zig_example-0.4.0 ext/zigrb_lucas_lehmer/build.zig
zig_example-0.4.0.pre ext/zigrb_lucas_lehmer/build.zig
zig_example-0.3.4 ext/zigrb_lucas_lehmer/build.zig
zig_example-0.3.3.1 ext/zigrb_lucas_lehmer/build.zig
zig_example-0.3.2 ext/zigrb_lucas_lehmer/build.zig