flipperzero-zig/build.zig

38 lines
1.2 KiB
Zig
Raw Normal View History

2024-08-22 02:27:21 +00:00
const std = @import("std");
const Target = std.Target;
const Build = std.Build;
pub fn build(b: *Build) void {
// Module
const flipperzero = b.addModule("flipperzero", .{
.root_source_file = b.path("lib/flipperzero/flipperzero.zig"),
});
// Configuration
const optimize = b.standardOptimizeOption(.{});
const target_query = .{ .cpu_arch = .thumb, .cpu_model = .{ .explicit = &Target.arm.cpu.cortex_m4 }, .os_tag = .freestanding, .abi = .none };
// Relocatable elf
const elf = b.addObject(.{
.name = "zlipper.fap",
.root_source_file = b.path("src/start.zig"),
.target = b.resolveTargetQuery(target_query),
.optimize = optimize,
.strip = true,
.pic = true,
});
elf.root_module.addImport("flipperzero", flipperzero);
elf.setLinkerScript(b.path("linker.ld"));
elf.setVerboseLink(true);
elf.build_id = .none;
elf.bundle_compiler_rt = false;
elf.link_gc_sections = true;
elf.linkage = .static;
b.default_step.dependOn(&elf.step);
const install_artifact = b.addInstallArtifact(elf, .{ .dest_dir = .{ .override = .{ .bin = {} } } });
b.getInstallStep().dependOn(&install_artifact.step);
}