diff --git a/ext/zig_rb/build.zig b/ext/zig_rb/build.zig index a8b3ffe..561fe54 100644 --- a/ext/zig_rb/build.zig +++ b/ext/zig_rb/build.zig @@ -1,20 +1,20 @@ const std = @import("std"); -pub fn build(b: *std.build.Builder) void { +pub fn build(b: *std.Build) void { // Standard release options allow the person running `zig build` to select // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); - const lib = b.addSharedLibrary(.{ .name = "zig_rb", .root_source_file = .{ .path = "src/main.zig" }, .version = .{ .major = 0, .minor = 0, .patch = 1 }, .optimize = optimize, .target = target }); + const lib = b.addSharedLibrary(.{ .name = "zig_rb", .root_source_file = b.path("src/main.zig"), .version = .{ .major = 0, .minor = 0, .patch = 1 }, .optimize = optimize, .target = target }); // Ruby stuff - var ruby_libdir = std.os.getenv("RUBY_LIBDIR") orelse ""; - lib.addLibraryPath(.{ .path = ruby_libdir }); - var ruby_hdrdir = std.os.getenv("RUBY_HDRDIR") orelse ""; - lib.addIncludePath(.{ .path = ruby_hdrdir }); - var ruby_archhdrdir = std.os.getenv("RUBY_ARCHHDRDIR") orelse ""; - lib.addIncludePath(.{ .path = ruby_archhdrdir }); + const ruby_libdir = std.posix.getenv("RUBY_LIBDIR") orelse ""; + lib.addLibraryPath(std.Build.LazyPath{ .cwd_relative = ruby_libdir }); + const ruby_hdrdir = std.posix.getenv("RUBY_HDRDIR") orelse ""; + lib.addIncludePath(std.Build.LazyPath{ .cwd_relative = ruby_hdrdir }); + const ruby_archhdrdir = std.posix.getenv("RUBY_ARCHHDRDIR") orelse ""; + lib.addIncludePath(std.Build.LazyPath{ .cwd_relative = ruby_archhdrdir }); lib.linkSystemLibrary("c"); b.installArtifact(lib); diff --git a/ext/zig_rb/src/main.zig b/ext/zig_rb/src/main.zig index e33c6f0..2546e0c 100644 --- a/ext/zig_rb/src/main.zig +++ b/ext/zig_rb/src/main.zig @@ -29,17 +29,17 @@ fn rb_hundred_doors(...) callconv(.C) ruby.VALUE { defer @cVaEnd(&ap); // first argument is `self`, but we don't use it so we need to discard it - var self = @cVaArg(&ap, ruby.VALUE); + const self = @cVaArg(&ap, ruby.VALUE); _ = self; // back and forth conversion from Ruby types to internal types + delegation to // actual `hundred_doors` function - var passes = ruby.NUM2INT(@cVaArg(&ap, ruby.VALUE)); + const passes = ruby.NUM2INT(@cVaArg(&ap, ruby.VALUE)); return ruby.INT2NUM(hundred_doors(passes)); } export fn Init_libzig_rb() void { - var zig_rb_class: ruby.VALUE = ruby.rb_define_class("ZigRb", ruby.rb_cObject); + const zig_rb_class: ruby.VALUE = ruby.rb_define_class("ZigRb", ruby.rb_cObject); _ = ruby.rb_define_method(zig_rb_class, "hundred_doors", rb_hundred_doors, 1); }