aboutsummaryrefslogtreecommitdiff
path: root/BUILD.bazel
diff options
context:
space:
mode:
authorJosh Varga <josh.varga@gmail.com>2025-01-20 00:02:41 -0600
committerMark Adler <madler@alumni.caltech.edu>2025-01-21 23:29:35 -0500
commit2359cd3d601a15ddafe7137a49651069c95a13c3 (patch)
tree143151fdc515e3f875834999e07088b38bea4892 /BUILD.bazel
parent71045aef60fc8d808ce31993224eb49156c4698a (diff)
downloadzlib-2359cd3d601a15ddafe7137a49651069c95a13c3.tar.gz
zlib-2359cd3d601a15ddafe7137a49651069c95a13c3.tar.bz2
zlib-2359cd3d601a15ddafe7137a49651069c95a13c3.zip
Add Bazel targets.
Diffstat (limited to 'BUILD.bazel')
-rw-r--r--BUILD.bazel134
1 files changed, 134 insertions, 0 deletions
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 0000000..9a294f2
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1,134 @@
1# Copied from https://github.com/bazelbuild/bazel-central-registry/tree/main/modules/zlib/1.3.1.bcr.4/patches
2# Adapted from https://github.com/protocolbuffers/protobuf/blob/master/third_party/zlib.BUILD
3
4# Copyright 2008 Google Inc. All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are
8# met:
9#
10# * Redistributions of source code must retain the above copyright
11# notice, this list of conditions and the following disclaimer.
12# * Redistributions in binary form must reproduce the above
13# copyright notice, this list of conditions and the following disclaimer
14# in the documentation and/or other materials provided with the
15# distribution.
16# * Neither the name of Google Inc. nor the names of its
17# contributors may be used to endorse or promote products derived from
18# this software without specific prior written permission.
19#
20# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31#
32# Code generated by the Protocol Buffer compiler is owned by the owner
33# of the input file used when generating it. This code is not
34# standalone and requires a support library to be linked with it. This
35# support library is itself covered by the above license.
36
37load("@rules_cc//cc:defs.bzl", "cc_library")
38load("@rules_license//rules:license.bzl", "license")
39
40package(
41 default_applicable_licenses = [":license"],
42)
43
44license(
45 name = "license",
46 license_kinds = ["@rules_license//licenses/spdx:Zlib"],
47 license_text = "LICENSE",
48)
49
50exports_files([
51 "LICENSE",
52])
53
54_ZLIB_HEADERS = [
55 "crc32.h",
56 "deflate.h",
57 "gzguts.h",
58 "inffast.h",
59 "inffixed.h",
60 "inflate.h",
61 "inftrees.h",
62 "trees.h",
63 "zconf.h",
64 "zlib.h",
65 "zutil.h",
66]
67
68_ZLIB_PREFIXED_HEADERS = ["zlib/include/" + hdr for hdr in _ZLIB_HEADERS]
69
70# In order to limit the damage from the `includes` propagation
71# via `:zlib`, copy the public headers to a subdirectory and
72# expose those.
73genrule(
74 name = "copy_public_headers",
75 srcs = _ZLIB_HEADERS,
76 outs = _ZLIB_PREFIXED_HEADERS,
77 cmd_bash = "cp $(SRCS) $(@D)/zlib/include/",
78 cmd_bat = " && ".join(
79 ["@copy /Y \"$(location %s)\" \"$(@D)\\zlib\\include\\\" >NUL" %
80 s for s in _ZLIB_HEADERS],
81 ),
82)
83
84config_setting(
85 name = "mingw_gcc_compiler",
86 flag_values = {
87 "@bazel_tools//tools/cpp:compiler": "mingw-gcc",
88 },
89 visibility = [":__subpackages__"],
90)
91
92cc_library(
93 name = "z",
94 srcs = [
95 "adler32.c",
96 "compress.c",
97 "crc32.c",
98 "deflate.c",
99 "gzclose.c",
100 "gzlib.c",
101 "gzread.c",
102 "gzwrite.c",
103 "infback.c",
104 "inffast.c",
105 "inflate.c",
106 "inftrees.c",
107 "trees.c",
108 "uncompr.c",
109 "zutil.c",
110 # Include the un-prefixed headers in srcs to work
111 # around the fact that zlib isn't consistent in its
112 # choice of <> or "" delimiter when including itself.
113 ] + _ZLIB_HEADERS,
114 hdrs = _ZLIB_PREFIXED_HEADERS,
115 copts = select({
116 ":mingw_gcc_compiler": [
117 "-fpermissive",
118 ],
119 "@platforms//os:windows": [],
120 "//conditions:default": [
121 "-Wno-deprecated-non-prototype",
122 "-Wno-unused-variable",
123 "-Wno-implicit-function-declaration",
124 ],
125 }),
126 includes = ["zlib/include/"],
127 visibility = ["//visibility:public"],
128)
129
130alias(
131 name = "zlib",
132 actual = ":z",
133 visibility = ["//visibility:public"],
134)