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");
pub fn build( b: *std.Build ) void {
const target = b.standardTargetOptions( .{} );
const optimize = b.standardOptimizeOption( .{} );
const opts = .{ .target = target, .optimize = optimize };
const exe = b.addExecutable(.{
.name = "axonbox-backend",
.root_source_file = b.path( "src/main.zig" ),
.target = target,
.optimize = optimize,
});
const zap = b.dependency("zap", .{
.target = target,
.optimize = optimize,
.openssl = true, // set to true to enable TLS support
} );
const jwt = b.dependency( "jwt", opts );
const json = b.dependency( "json", opts );
const uuid = b.dependency( "uuid", opts );
const getty = b.dependency( "getty", opts );
const tls12 = b.dependency( "tls12", opts );
const sqlite = b.dependency( "sqlite", opts );
const smtp = b.dependency( "smtp_client", opts );
const websocket = b.dependency( "websocket", opts );
exe.root_module.addImport( "zap", zap.module( "zap" ) );
exe.root_module.addImport( "jwt", jwt.module( "jwt" ) );
exe.root_module.addImport( "json", json.module( "json" ) );
exe.root_module.addImport( "uuid", uuid.module( "uuid" ) );
exe.root_module.addImport( "getty", getty.module( "getty" ) );
exe.root_module.addImport( "tls12", tls12.module( "zig-tls12" ) );
exe.root_module.addImport( "sqlite", sqlite.module( "sqlite" ) );
exe.root_module.addImport( "smtp_client", smtp.module( "smtp_client" ) );
exe.root_module.addImport( "websocket", websocket.module( "websocket" ) );
//zls stuff
const check_exe = b.addExecutable(.{
.name = "axonbox-backend",
.root_source_file = b.path( "src/main.zig" ),
.target = target,
.optimize = optimize,
});
for( exe.root_module.import_table.keys() ) |key|
check_exe.root_module.addImport( key, exe.root_module.import_table.get( key ) orelse unreachable );
check_exe.linkLibrary( sqlite.artifact( "sqlite" ) );
const check = b.step( "check", "check compile result" );
check.dependOn( &check_exe.step );
exe.linkLibrary( sqlite.artifact( "sqlite" ) );
b.installArtifact( exe );
const run_cmd = b.addRunArtifact( exe );
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 );
}
|