From b8e4accccf3ed5aa2199a3e4107c150a426208b0 Mon Sep 17 00:00:00 2001 From: Emil Lerch Date: Sun, 19 Mar 2023 10:54:51 -0700 Subject: [PATCH] update to zig 0.11.0-dev.2157+f56f3c582 --- build.zig | 30 ++++++++++++++++++++---------- build.zig.ini | 13 ------------- build.zig.zon | 15 +++++++++++++++ src/main.zig | 2 +- 4 files changed, 36 insertions(+), 24 deletions(-) delete mode 100644 build.zig.ini create mode 100644 build.zig.zon diff --git a/build.zig b/build.zig index 47db071..d4ea5ee 100644 --- a/build.zig +++ b/build.zig @@ -14,9 +14,10 @@ pub fn build(b: *std.build.Builder) void { // for restricting supported target set are available. const target = b.standardTargetOptions(.{}); - // Standard release options allow the person running `zig build` to select - // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. - const mode = b.standardReleaseOptions(); + // Standard optimization options allow the person running `zig build` to select + // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not + // set a preferred release mode, allowing the user to decide how to optimize. + const optimize = b.standardOptimizeOption(.{}); // Dependency based on the package manager MVP: // https://github.com/ziglang/zig/pull/14265 @@ -24,13 +25,20 @@ pub fn build(b: *std.build.Builder) void { const im_dep = b.dependency("ImageMagick", .{}); const z_dep = b.dependency("libz", .{}); - const i2cdriver = b.addStaticLibrary("i2cdriver", null); + const i2cdriver = b.addStaticLibrary(.{ + .name = "i2cdriver", + .target = target, + .optimize = optimize, + }); i2cdriver.addCSourceFile("lib/i2cdriver/i2cdriver.c", &[_][]const u8{ "-Wall", "-Wpointer-sign", "-Werror" }); i2cdriver.linkLibC(); - const exe = b.addExecutable("i2c", "src/main.zig"); - exe.setTarget(target); - exe.setBuildMode(mode); + const exe = b.addExecutable(.{ + .name = "i2c", + .root_source_file = .{ .path = "src/main.zig" }, + .target = target, + .optimize = optimize, + }); exe.linkLibrary(im_dep.artifact("MagickWand")); exe.linkLibrary(z_dep.artifact("z")); exe.linkLibrary(i2cdriver); @@ -46,9 +54,11 @@ pub fn build(b: *std.build.Builder) void { const run_step = b.step("run", "Run the app"); run_step.dependOn(&run_cmd.step); - const exe_tests = b.addTest("src/main.zig"); - exe_tests.setTarget(target); - exe_tests.setBuildMode(mode); + const exe_tests = b.addTest(.{ + .root_source_file = .{ .path = "src/main.zig" }, + .target = target, + .optimize = optimize, + }); const test_step = b.step("test", "Run unit tests"); test_step.dependOn(&exe_tests.step); diff --git a/build.zig.ini b/build.zig.ini deleted file mode 100644 index 22b6ee8..0000000 --- a/build.zig.ini +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name=i2c -version=0.0.1 - -[dependency] -name=ImageMagick -url=https://github.com/elerch/ImageMagick/archive/31ce8a2ada73c78f389554d059943beb01288157.tar.gz -hash=c277d15642d73d4c5365cc64c1322569029302d91786471b84a0fc42c5f35d6f - -[dependency] -name=libz -url=https://github.com/andrewrk/libz/archive/0c407ce05693fef54b909fee9d0c17ad28f7190b.tar.gz -hash=a09f23166f264f4ec7a82b81e9e7ce62bf36a13f86e12afb1fce1211d90f0d88 diff --git a/build.zig.zon b/build.zig.zon new file mode 100644 index 0000000..c68af47 --- /dev/null +++ b/build.zig.zon @@ -0,0 +1,15 @@ +.{ + .name = "i2c", + .version = "0.0.1", + + .dependencies = .{ + .ImageMagick = .{ + .url = "https://github.com/elerch/ImageMagick/archive/0c78c43ba348fe2d764593b074b4f53d087a3a26.tar.gz", + .hash = "12208162dcc0b1f2e5fb6376136fe5266b2b493a38ca8f30eff94b735f7da6ada462", + }, + .libz = .{ + .url="https://github.com/andrewrk/libz/archive/9e71b746b83d2b5bf5eb247663eb65a52cf0f68f.tar.gz", + .hash = "12204ea3490e5bdf379f56aa11784d906aed6d4c553c724fa5427169915f2cf4a651", + }, + }, +} diff --git a/src/main.zig b/src/main.zig index 1f4853e..938b42e 100644 --- a/src/main.zig +++ b/src/main.zig @@ -129,7 +129,7 @@ fn sendPixelsThroughI2CDriver(pixels: []const u8, file: [*:0]const u8, device_id fn packPixelsToDeviceFormat(pixels: []const u8, packed_pixels: []u8) void { // Each u8 in pixels is a single bit. We need to pack these bits - for (packed_pixels) |*b, i| { + for (packed_pixels, 0..) |*b, i| { const column = i % WIDTH; const page = i / WIDTH;