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