xref: /aosp_15_r20/external/protobuf/third_party/zlib.BUILD (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_library")
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Workerlicenses(["notice"])  # BSD/MIT-like license (for zlib)
4*1b3f573fSAndroid Build Coastguard Worker
5*1b3f573fSAndroid Build Coastguard Workerexports_files(["zlib.BUILD"])
6*1b3f573fSAndroid Build Coastguard Worker
7*1b3f573fSAndroid Build Coastguard Worker_ZLIB_HEADERS = [
8*1b3f573fSAndroid Build Coastguard Worker    "crc32.h",
9*1b3f573fSAndroid Build Coastguard Worker    "deflate.h",
10*1b3f573fSAndroid Build Coastguard Worker    "gzguts.h",
11*1b3f573fSAndroid Build Coastguard Worker    "inffast.h",
12*1b3f573fSAndroid Build Coastguard Worker    "inffixed.h",
13*1b3f573fSAndroid Build Coastguard Worker    "inflate.h",
14*1b3f573fSAndroid Build Coastguard Worker    "inftrees.h",
15*1b3f573fSAndroid Build Coastguard Worker    "trees.h",
16*1b3f573fSAndroid Build Coastguard Worker    "zconf.h",
17*1b3f573fSAndroid Build Coastguard Worker    "zlib.h",
18*1b3f573fSAndroid Build Coastguard Worker    "zutil.h",
19*1b3f573fSAndroid Build Coastguard Worker]
20*1b3f573fSAndroid Build Coastguard Worker
21*1b3f573fSAndroid Build Coastguard Worker_ZLIB_PREFIXED_HEADERS = ["zlib/include/" + hdr for hdr in _ZLIB_HEADERS]
22*1b3f573fSAndroid Build Coastguard Worker
23*1b3f573fSAndroid Build Coastguard Worker# In order to limit the damage from the `includes` propagation
24*1b3f573fSAndroid Build Coastguard Worker# via `:zlib`, copy the public headers to a subdirectory and
25*1b3f573fSAndroid Build Coastguard Worker# expose those.
26*1b3f573fSAndroid Build Coastguard Workergenrule(
27*1b3f573fSAndroid Build Coastguard Worker    name = "copy_public_headers",
28*1b3f573fSAndroid Build Coastguard Worker    srcs = _ZLIB_HEADERS,
29*1b3f573fSAndroid Build Coastguard Worker    outs = _ZLIB_PREFIXED_HEADERS,
30*1b3f573fSAndroid Build Coastguard Worker    cmd_bash = "cp $(SRCS) $(@D)/zlib/include/",
31*1b3f573fSAndroid Build Coastguard Worker    cmd_bat = " && ".join(
32*1b3f573fSAndroid Build Coastguard Worker        ["@copy /Y $(location %s) $(@D)\\zlib\\include\\  >NUL" %
33*1b3f573fSAndroid Build Coastguard Worker         s for s in _ZLIB_HEADERS],
34*1b3f573fSAndroid Build Coastguard Worker    ),
35*1b3f573fSAndroid Build Coastguard Worker)
36*1b3f573fSAndroid Build Coastguard Worker
37*1b3f573fSAndroid Build Coastguard Workercc_library(
38*1b3f573fSAndroid Build Coastguard Worker    name = "zlib",
39*1b3f573fSAndroid Build Coastguard Worker    srcs = [
40*1b3f573fSAndroid Build Coastguard Worker        "adler32.c",
41*1b3f573fSAndroid Build Coastguard Worker        "compress.c",
42*1b3f573fSAndroid Build Coastguard Worker        "crc32.c",
43*1b3f573fSAndroid Build Coastguard Worker        "deflate.c",
44*1b3f573fSAndroid Build Coastguard Worker        "gzclose.c",
45*1b3f573fSAndroid Build Coastguard Worker        "gzlib.c",
46*1b3f573fSAndroid Build Coastguard Worker        "gzread.c",
47*1b3f573fSAndroid Build Coastguard Worker        "gzwrite.c",
48*1b3f573fSAndroid Build Coastguard Worker        "infback.c",
49*1b3f573fSAndroid Build Coastguard Worker        "inffast.c",
50*1b3f573fSAndroid Build Coastguard Worker        "inflate.c",
51*1b3f573fSAndroid Build Coastguard Worker        "inftrees.c",
52*1b3f573fSAndroid Build Coastguard Worker        "trees.c",
53*1b3f573fSAndroid Build Coastguard Worker        "uncompr.c",
54*1b3f573fSAndroid Build Coastguard Worker        "zutil.c",
55*1b3f573fSAndroid Build Coastguard Worker        # Include the un-prefixed headers in srcs to work
56*1b3f573fSAndroid Build Coastguard Worker        # around the fact that zlib isn't consistent in its
57*1b3f573fSAndroid Build Coastguard Worker        # choice of <> or "" delimiter when including itself.
58*1b3f573fSAndroid Build Coastguard Worker    ] + _ZLIB_HEADERS,
59*1b3f573fSAndroid Build Coastguard Worker    hdrs = _ZLIB_PREFIXED_HEADERS,
60*1b3f573fSAndroid Build Coastguard Worker    copts = select({
61*1b3f573fSAndroid Build Coastguard Worker        "@bazel_tools//src/conditions:windows": [],
62*1b3f573fSAndroid Build Coastguard Worker        "//conditions:default": [
63*1b3f573fSAndroid Build Coastguard Worker            "-Wno-unused-variable",
64*1b3f573fSAndroid Build Coastguard Worker            "-Wno-implicit-function-declaration",
65*1b3f573fSAndroid Build Coastguard Worker        ],
66*1b3f573fSAndroid Build Coastguard Worker    }),
67*1b3f573fSAndroid Build Coastguard Worker    includes = ["zlib/include/"],
68*1b3f573fSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
69*1b3f573fSAndroid Build Coastguard Worker)
70