@@ -15,6 +15,7 @@ pub fn build(b: *Build) !void {
1515 const boringssl = b .dependency ("boringssl" , .{});
1616 const cares = b .dependency ("cares" , .{});
1717 const gtest = b .dependency ("gtest" , .{});
18+ const zlib = b .dependency ("zlib" , .{});
1819
1920 const libs_step = b .step ("dependencies" , "Install libraries libgrpc depends on" );
2021
@@ -111,12 +112,26 @@ pub fn build(b: *Build) !void {
111112 sslmod .addCSourceFiles (.{
112113 .root = boringssl .path ("src" ),
113114 .files = & file_lists .libboringssl_src ,
114- .flags = & cxx_flags ,
115+ .flags = &( cxx_flags ++ .{ "-fno-exceptions" }) ,
115116 });
117+ sslmod .addCMacro ("OPENSSL_NO_ASM" , "1" );
118+ sslmod .addCMacro ("_GNU_SOURCE" , "1" );
119+ sslmod .addCMacro ("_HAS_EXCEPTIONS" , "0" );
120+ sslmod .addCMacro ("NOMINMAX" , "1" );
116121 sslmod .addIncludePath (boringssl .path ("src/include" ));
117122 libssl .installHeadersDirectory (boringssl .path ("src/include/openssl" ), "openssl" , .{});
118123 libs_step .dependOn (& b .addInstallArtifact (libssl , .{}).step );
119124
125+ // zlib
126+ const zmod = b .createModule (.{ .target = target , .optimize = optimize });
127+ const libz = b .addLibrary (.{ .name = "z" , .root_module = zmod });
128+ zmod .addCSourceFiles (.{
129+ .root = zlib .path ("" ),
130+ .files = & file_lists .libz_src ,
131+ .flags = & c_flags ,
132+ });
133+ libs_step .dependOn (& b .addInstallArtifact (libz , .{}).step );
134+
120135 // Core library
121136 const grpc = b .createModule (.{
122137 .target = target ,
@@ -142,6 +157,7 @@ pub fn build(b: *Build) !void {
142157 grpc .linkLibrary (libabseil );
143158 grpc .linkLibrary (libupb );
144159 grpc .linkLibrary (libssl );
160+ grpc .linkLibrary (libz );
145161 if (target .result .os .tag .isDarwin ()) {
146162 grpc .linkFramework ("CoreFoundation" , .{});
147163 grpc .addCMacro ("OSATOMIC_USE_INLINED" , "1" );
0 commit comments