| # Copied from https://github.com/bazelbuild/bazel-central-registry/tree/main/modules/zlib/1.3.1.bcr.4/patches | |
| # Adapted from https://github.com/protocolbuffers/protobuf/blob/master/third_party/zlib.BUILD | |
| # Copyright 2008 Google Inc. All rights reserved. | |
| # | |
| # Redistribution and use in source and binary forms, with or without | |
| # modification, are permitted provided that the following conditions are | |
| # met: | |
| # | |
| # * Redistributions of source code must retain the above copyright | |
| # notice, this list of conditions and the following disclaimer. | |
| # * Redistributions in binary form must reproduce the above | |
| # copyright notice, this list of conditions and the following disclaimer | |
| # in the documentation and/or other materials provided with the | |
| # distribution. | |
| # * Neither the name of Google Inc. nor the names of its | |
| # contributors may be used to endorse or promote products derived from | |
| # this software without specific prior written permission. | |
| # | |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| # | |
| # Code generated by the Protocol Buffer compiler is owned by the owner | |
| # of the input file used when generating it. This code is not | |
| # standalone and requires a support library to be linked with it. This | |
| # support library is itself covered by the above license. | |
| load("@rules_cc//cc:defs.bzl", "cc_library") | |
| load("@rules_license//rules:license.bzl", "license") | |
| package( | |
| default_applicable_licenses = | |
| _ZLIB_PREFIXED_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_bash = "cp $(SRCS) $(@D)/zlib/include/", | |
| cmd_bat = " && ".join( | |
| ["@copy /Y \"$(location %s)\" \"$(@D)\\zlib\\include\\\" >NUL" % | |
| s for s in _ZLIB_HEADERS], | |
| ), | |
| ) | |
| config_setting( | |
| name = "mingw_gcc_compiler", | |
| flag_values = { | |
| "@bazel_tools//tools/cpp:compiler": "mingw-gcc", | |
| }, | |
| visibility = [":__subpackages__"], | |
| ) | |
| cc_library( | |
| name = "z", | |
| 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 = select({ | |
| ":mingw_gcc_compiler": [ | |
| "-fpermissive", | |
| ], | |
| "@platforms//os:windows": [], | |
| "//conditions:default": [ | |
| "-Wno-deprecated-non-prototype", | |
| "-Wno-unused-variable", | |
| "-Wno-implicit-function-declaration", | |
| ], | |
| }), | |
| includes = ["zlib/include/"], | |
| visibility = ["//visibility:public"], | |
| ) | |
| alias( | |
| name = "zlib", | |
| actual = ":z", | |
| visibility = ["//visibility:public"], | |
| ) | |