const std = @import("std"); pub fn build(b: *std.Build) void { const optimize = b.standardOptimizeOption(.{ .preferred_optimize_mode = .ReleaseSmall, }); const target = b.resolveTargetQuery(.{ .cpu_arch = .thumb, .cpu_model = .{ .explicit = &std.Target.arm.cpu.cortex_m4, }, .os_tag = .freestanding, .abi = .eabihf, }); // const mod = b.addModule("zig_stm32g4_test", .{ // .root_source_file = b.path("src/root.zig"), // .target = target, // }); const exe = b.addExecutable(.{ .name = "zig_stm32g4_test", .root_module = b.createModule(.{ .root_source_file = b.path("src/main.zig"), .target = target, .optimize = optimize, }), }); exe.dead_strip_dylibs = true; exe.link_gc_sections = true; exe.link_function_sections = true; exe.link_data_sections = true; exe.lto = .full; exe.discard_local_symbols = true; const bin = exe.addObjCopy(.{ .format = .bin }); const install_exe = b.addInstallArtifact(exe, .{}); const install_bin = b.addInstallBinFile(bin.getOutput(), bin.basename); exe.setLinkerScript(b.path("stm32g431cbtx.ld")); b.getInstallStep().dependOn(&install_bin.step); install_bin.step.dependOn(&install_exe.step); b.installArtifact(exe); // const run_step = b.step("run", "Run the app"); // const run_cmd = b.addRunArtifact(exe); // run_step.dependOn(&run_cmd.step); // run_cmd.step.dependOn(b.getInstallStep()); // if (b.args) |args| { // run_cmd.addArgs(args); // } // const mod_tests = b.addTest(.{ // .root_module = mod, // }); // const run_mod_tests = b.addRunArtifact(mod_tests); // const exe_tests = b.addTest(.{ // .root_module = exe.root_module, // }); // const run_exe_tests = b.addRunArtifact(exe_tests); // const test_step = b.step("test", "Run tests"); // test_step.dependOn(&run_mod_tests.step); // test_step.dependOn(&run_exe_tests.step); }