@@ -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