Skip to content

Commit f7f360a

Browse files
authored
add pic option for rocksdb (#18)
1 parent d88978e commit f7f360a

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

build.zig

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,21 @@ pub fn build(b: *Build) void {
77
const target = b.standardTargetOptions(.{});
88
const optimize = b.standardOptimizeOption(.{});
99

10-
const test_step = b.step("test", "Run bindings tests");
11-
12-
// rocksdb itself as a zig module
10+
// RocksDB's translate-c module
1311
const rocksdb_mod = addRocksDB(b, target, optimize);
14-
15-
// zig bindings library to rocksdb
1612
const bindings_mod = b.addModule("bindings", .{
1713
.target = target,
1814
.optimize = optimize,
1915
.root_source_file = b.path("src/lib.zig"),
2016
});
2117
bindings_mod.addImport("rocksdb", rocksdb_mod);
2218

23-
// tests
2419
const tests = b.addTest(.{
2520
.target = target,
2621
.optimize = optimize,
2722
.root_source_file = b.path("src/lib.zig"),
2823
});
24+
const test_step = b.step("test", "Run bindings tests");
2925
tests.root_module.addImport("rocksdb", rocksdb_mod);
3026
test_step.dependOn(&b.addRunArtifact(tests).step);
3127
}
@@ -52,22 +48,31 @@ fn addRocksDB(
5248
.link_libcpp = true,
5349
});
5450

55-
const librocksdb_a = b.addStaticLibrary(.{
51+
const force_pic = b.option(bool, "force_pic", "Forces PIC for the libraries");
52+
const static_rocksdb = b.addLibrary(.{
5653
.name = "rocksdb",
57-
.target = target,
58-
.optimize = optimize,
54+
.linkage = .static,
55+
.root_module = b.createModule(.{
56+
.target = target,
57+
.optimize = optimize,
58+
.pic = force_pic,
59+
}),
5960
});
60-
const librocksdb_so = b.addSharedLibrary(.{
61+
const dynamic_rocksdb = b.addLibrary(.{
6162
.name = "rocksdb_shared",
62-
.target = target,
63-
.optimize = optimize,
63+
.linkage = .dynamic,
64+
.root_module = b.createModule(.{
65+
.target = target,
66+
.optimize = optimize,
67+
.pic = force_pic,
68+
}),
6469
});
6570

66-
try buildRocksDB(b, librocksdb_a, target);
67-
try buildRocksDB(b, librocksdb_so, target);
71+
try buildRocksDB(b, static_rocksdb, target);
72+
try buildRocksDB(b, dynamic_rocksdb, target);
6873

6974
mod.addIncludePath(rocks_dep.path("include"));
70-
mod.linkLibrary(librocksdb_a);
75+
mod.linkLibrary(static_rocksdb);
7176

7277
return mod;
7378
}

0 commit comments

Comments
 (0)