Add Bazel config for zlib support (#5389)
* Add Bazel config for optional zlib support * Add hard dependency on zlib * Remove unused config_settingpull/5479/head
parent
81f6aa404c
commit
21c3801369
3 changed files with 89 additions and 3 deletions
@ -0,0 +1,60 @@ |
||||
package(default_visibility = ["//visibility:public"]) |
||||
|
||||
licenses(["notice"]) # BSD/MIT-like license (for zlib) |
||||
|
||||
_ZLIB_HEADERS = [ |
||||
"crc32.h", |
||||
"deflate.h", |
||||
"gzguts.h", |
||||
"inffast.h", |
||||
"inffixed.h", |
||||
"inflate.h", |
||||
"inftrees.h", |
||||
"trees.h", |
||||
"zconf.h", |
||||
"zlib.h", |
||||
"zutil.h", |
||||
] |
||||
|
||||
_ZLIB_PREFIXED_HEADERS = ["zlib/include/" + hdr for hdr in _ZLIB_HEADERS] |
||||
|
||||
# In order to limit the damage from the `includes` propagation |
||||
# via `:zlib`, copy the public headers to a subdirectory and |
||||
# expose those. |
||||
genrule( |
||||
name = "copy_public_headers", |
||||
srcs = _ZLIB_HEADERS, |
||||
outs = _ZLIB_PREFIXED_HEADERS, |
||||
cmd = "cp $(SRCS) $(@D)/zlib/include/", |
||||
visibility = ["//visibility:private"], |
||||
) |
||||
|
||||
cc_library( |
||||
name = "zlib", |
||||
srcs = [ |
||||
"adler32.c", |
||||
"compress.c", |
||||
"crc32.c", |
||||
"deflate.c", |
||||
"gzclose.c", |
||||
"gzlib.c", |
||||
"gzread.c", |
||||
"gzwrite.c", |
||||
"infback.c", |
||||
"inffast.c", |
||||
"inflate.c", |
||||
"inftrees.c", |
||||
"trees.c", |
||||
"uncompr.c", |
||||
"zutil.c", |
||||
# Include the un-prefixed headers in srcs to work |
||||
# around the fact that zlib isn't consistent in its |
||||
# choice of <> or "" delimiter when including itself. |
||||
] + _ZLIB_HEADERS, |
||||
hdrs = _ZLIB_PREFIXED_HEADERS, |
||||
copts = [ |
||||
"-Wno-unused-variable", |
||||
"-Wno-implicit-function-declaration", |
||||
], |
||||
includes = ["zlib/include/"], |
||||
) |
Loading…
Reference in new issue