-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.zig
More file actions
119 lines (95 loc) · 3.22 KB
/
build.zig
File metadata and controls
119 lines (95 loc) · 3.22 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
const std = @import("std");
const Build = std.Build;
const cmake = @import("src/cmake.zig");
pub fn build(b: *Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
loggerdb_build(b, .{
.target = target,
.optimize = optimize,
});
// sdl_build(b, .{
// .target = target,
// .optimize = optimize,
// });
}
fn loggerdb_build(b: *Build, options: anytype) void {
const target = options.target;
const optimize = options.optimize;
const loggerdb_dep = b.dependency("loggerdb", .{});
var project = cmake.init(b, .{
.target = target,
.optimize = optimize,
.path = loggerdb_dep.path(""),
});
defer project.deinit();
project.setOption("CMAKE_INSTALL_PREFIX", .{ .STRING = "/usr" });
project.exposeOptions(.{});
project.configure(.{}) catch unreachable;
const loggerdb_target = project.getTarget("loggerDB") orelse unreachable;
const translate = b.addTranslateC(.{
.root_source_file = loggerdb_dep.path(
b.pathJoin(&.{ "loggerDB", "include", "loggerDB.h" }),
),
.target = target,
.optimize = optimize,
});
translate.addIncludePath(loggerdb_dep.path(
b.pathJoin(&.{ "loggerDB", "include" }),
));
const loggerdb_translate = b.createModule(.{
.root_source_file = translate.getOutput(),
.target = target,
.optimize = optimize,
});
const exe = b.addExecutable(.{
.name = "main",
.root_module = b.createModule(.{
.root_source_file = b.path("src/ldb.zig"),
.target = target,
.optimize = optimize,
.imports = &.{
.{ .name = "loggerdb", .module = loggerdb_translate },
},
}),
});
exe.linkLibrary(loggerdb_target);
b.installArtifact(exe);
const run_step = b.step("run", "run test program invoking imported cmake project");
const run_cmd = b.addRunArtifact(exe);
run_step.dependOn(&run_cmd.step);
}
fn sdl_build(b: *Build, options: anytype) void {
const target = options.target;
const optimize = options.optimize;
const SDL_dep = b.dependency("SDL", .{});
var project = cmake.init(b, .{
.target = target,
.optimize = optimize,
.path = SDL_dep.path(""),
});
defer project.deinit();
project.setOption("CMAKE_INSTALL_PREFIX", .{ .STRING = "/usr" });
project.setOption("SDL-STATIC", .{ .BOOL = true });
//project.exposeOptions(.{});
project.configure(.{
.debug = false,
}) catch unreachable;
const sdl_target = project.getTarget("SDL3-static") orelse
project.getTarget("SDL3-shared") orelse
unreachable;
const exe = b.addExecutable(.{
.name = "main",
.root_module = b.createModule(.{
.root_source_file = b.path("src/sdl.zig"),
.target = target,
.optimize = optimize,
.imports = &.{},
}),
});
exe.linkLibrary(sdl_target);
b.installArtifact(exe);
const run_step = b.step("run", "run test program invoking imported cmake project");
const run_cmd = b.addRunArtifact(exe);
run_step.dependOn(&run_cmd.step);
}