-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.zig
130 lines (114 loc) · 4.82 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
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
120
121
122
123
124
125
126
127
128
129
130
const std = @import("std");
pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
// Main library
const lib = b.addStaticLibrary(.{
.name = "zvdb",
.root_source_file = b.path("src/zvdb.zig"),
.target = target,
.optimize = optimize,
});
b.installArtifact(lib);
// Create a module for the library
const lib_module = b.addModule("zvdb", .{
.root_source_file = b.path("src/zvdb.zig"),
});
const hnsw_tests = b.addTest(.{
.root_source_file = b.path("src/test_hnsw.zig"),
.target = target,
.optimize = optimize,
});
const run_hnsw_tests = b.addRunArtifact(hnsw_tests);
const hnsw_test_step = b.step("test", "Run tests");
hnsw_test_step.dependOn(&run_hnsw_tests.step);
// Add unit tests
// const unit_tests = b.addTest(.{
// .root_source_file = b.path("tests/unit/main.zig"),
// .target = target,
// .optimize = optimize,
// });
// const run_unit_tests = b.addRunArtifact(unit_tests);
// const unit_test_step = b.step("unit-test", "Run unit tests");
// unit_test_step.dependOn(&run_unit_tests.step);
// // Add integration tests
// const integration_tests = b.addTest(.{
// .root_source_file = b.path("tests/integration/full_flow_test.zig"),
// .target = target,
// .optimize = optimize,
// });
// const run_integration_tests = b.addRunArtifact(integration_tests);
// const integration_test_step = b.step("integration-test", "Run integration tests");
// integration_test_step.dependOn(&run_integration_tests.step);
// Benchmarks:
// Single-threaded benchmarks
const single_threaded_benchmarks = b.addExecutable(.{
.name = "single_threaded_benchmarks",
.root_source_file = b.path("benchmarks/single_threaded_benchmarks.zig"),
.target = target,
.optimize = optimize,
});
single_threaded_benchmarks.root_module.addImport("zvdb", lib_module);
b.installArtifact(single_threaded_benchmarks);
const run_single_threaded = b.addRunArtifact(single_threaded_benchmarks);
if (b.args) |args| {
run_single_threaded.addArgs(args);
}
const run_single_threaded_step = b.step("bench-single", "Run single-threaded benchmarks");
run_single_threaded_step.dependOn(&run_single_threaded.step);
// Multi-threaded benchmarks
const multi_threaded_benchmarks = b.addExecutable(.{
.name = "multi_threaded_benchmarks",
.root_source_file = b.path("benchmarks/multi_threaded_benchmarks.zig"),
.target = target,
.optimize = optimize,
});
multi_threaded_benchmarks.root_module.addImport("zvdb", lib_module);
b.installArtifact(multi_threaded_benchmarks);
const run_multi_threaded = b.addRunArtifact(multi_threaded_benchmarks);
if (b.args) |args| {
run_multi_threaded.addArgs(args);
}
const run_multi_threaded_step = b.step("bench-multi", "Run multi-threaded benchmarks");
run_multi_threaded_step.dependOn(&run_multi_threaded.step);
// Examples
// const basic_example = b.addExecutable(.{
// .name = "basic_usage",
// .root_source_file = b.path("examples/basic_usage.zig"),
// .target = target,
// .optimize = optimize,
// });
// basic_example.root_module.addImport("zvdb", lib_module);
// b.installArtifact(basic_example);
// const advanced_example = b.addExecutable(.{
// .name = "advanced_usage",
// .root_source_file = b.path("examples/advanced_usage.zig"),
// .target = target,
// .optimize = optimize,
// });
// advanced_example.root_module.addImport("zvdb", lib_module);
// b.installArtifact(advanced_example);
// Benchmarks
// const index_benchmark = b.addExecutable(.{
// .name = "index_performance",
// .root_source_file = b.path("benchmarks/index_performance.zig"),
// .target = target,
// .optimize = optimize,
// });
// index_benchmark.root_module.addImport("zvdb", lib_module);
// b.installArtifact(index_benchmark);
// const search_benchmark = b.addExecutable(.{
// .name = "search_performance",
// .root_source_file = b.path("benchmarks/search_performance.zig"),
// .target = target,
// .optimize = optimize,
// });
// search_benchmark.root_module.addImport("zvdb", lib_module);
// b.installArtifact(search_benchmark);
// // Run benchmarks step
// const run_benchmarks = b.step("benchmark", "Run performance benchmarks");
// const run_index_benchmark = b.addRunArtifact(index_benchmark);
// const run_search_benchmark = b.addRunArtifact(search_benchmark);
// run_benchmarks.dependOn(&run_index_benchmark.step);
// run_benchmarks.dependOn(&run_search_benchmark.step);
}