-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.zig
66 lines (53 loc) · 2.37 KB
/
build.zig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const std = @import("std");
const zfetch = @import("deps/zfetch/build.zig");
// Path to macOS SDK for macOS cross compilation
const MACOS_SDK = "/home/theseyan/Go/bOptimizer/build/sdk-macos-12.0-main/root";
pub fn build(b: *std.build.Builder) !void {
const target = b.standardTargetOptions(.{});
const mode = b.standardReleaseOptions();
const exe = b.addExecutable("bkg", "src/main.zig");
exe.setTarget(target);
// Strip debug symbols by default
// Should be disabled during development/debugging
exe.strip = false;
exe.linkLibC();
// Link bOptimizer
if(target.getOs().tag == .linux and target.getCpu().arch == .x86_64) {
exe.addObjectFile("deps/bOptimizer/build/out/libboptimizer-x86_64-linux.a");
}else if(target.getOs().tag == .linux and target.getCpu().arch == .aarch64) {
exe.addObjectFile("deps/bOptimizer/build/out/libboptimizer-aarch64-linux.a");
}else if(target.getOs().tag == .macos and target.getCpu().arch == .x86_64) {
b.sysroot = MACOS_SDK;
exe.addFrameworkPath(MACOS_SDK ++ "/System/Library/Frameworks");
exe.linkFramework("CoreFoundation");
exe.addObjectFile("deps/bOptimizer/build/out/libboptimizer-x86_64-macos.a");
}else if(target.getOs().tag == .macos and target.getCpu().arch == .aarch64) {
b.sysroot = MACOS_SDK;
exe.addFrameworkPath(MACOS_SDK ++ "/System/Library/Frameworks");
exe.linkFramework("CoreFoundation");
exe.addObjectFile("deps/bOptimizer/build/out/libboptimizer-aarch64-macos.a");
}
// Compile LZ4 library
exe.addCSourceFile("deps/lz4/lib/lz4.c", &.{});
exe.addCSourceFile("deps/lz4/lib/lz4hc.c", &.{});
// Compile microtar library
exe.addCSourceFile("deps/microtar/src/microtar.c", &.{});
// Compile zip library
exe.addCSourceFile("deps/zip/src/zip.c", &.{});
// Link zig-clap library
exe.addPackagePath("clap", "deps/zig-clap/clap.zig");
// Link zfetch
exe.addPackage(try zfetch.getPackage(b));
// Link known-folders
exe.addPackagePath("known-folders", "deps/known-folders/known-folders.zig");
exe.setBuildMode(mode);
exe.install();
// Run step
const run_cmd = exe.run();
run_cmd.step.dependOn(b.getInstallStep());
if (b.args) |args| {
run_cmd.addArgs(args);
}
const run_step = b.step("run", "Run the app");
run_step.dependOn(&run_cmd.step);
}