1package( 2 default_visibility = ["//visibility:public"], 3) 4 5load("@org_tensorflow_lite_support//tensorflow_lite_support/tools:build_rules/expand_template.bzl", "cmake_substitutions", "expand_template") 6 7_CMAKE_VARIABLES = { 8 "INT16_T_LIBZIP": 2, 9 "INT32_T_LIBZIP": 4, 10 "INT64_T_LIBZIP": 8, 11 "INT8_T_LIBZIP": 1, 12 "INT_LIBZIP": 4, 13 "LIBZIP_TYPES_INCLUDE": "#include <stdint.h>", 14 "LONG_LIBZIP": 8, 15 "LONG_LONG_LIBZIP": 8, 16 "PACKAGE_VERSION": "1.5.1", 17 "PACKAGE_VERSION_MAJOR": "1", 18 "PACKAGE_VERSION_MICRO": "1", 19 "PACKAGE_VERSION_MINOR": "5", 20 "SHORT_LIBZIP": 2, 21 "SIZEOF_OFF_T": 8, 22 "SIZE_T_LIBZIP": 8, 23 "SSIZE_T_LIBZIP": 8, 24 "UINT16_T_LIBZIP": 2, 25 "UINT32_T_LIBZIP": 4, 26 "UINT64_T_LIBZIP": 8, 27 "UINT8_T_LIBZIP": 1, 28 "__INT16_LIBZIP": None, 29 "__INT32_LIBZIP": None, 30 "__INT64_LIBZIP": None, 31 "__INT8_LIBZIP": None, 32} 33 34_CMAKE_VARIABLES.update(dict([ 35 ( 36 "ZIP_{sign}INT{size}_T".format( 37 sign = sign.upper(), 38 size = size, 39 ), 40 "{sign}int{size}_t".format( 41 sign = sign.lower(), 42 size = size, 43 ), 44 ) 45 for sign in ("U", "") 46 for size in (8, 16, 32, 64) 47])) 48 49_SUBSTITUTIONS = { 50 "@PACKAGE@": "libzip", 51 "@VERSION@": "1.5.1", # Keep in sync with actual package! 52} 53 54_DEFINES = { 55 "HAVE_CLONEFILE": False, 56 "HAVE_COMMONCRYPTO": False, 57 "HAVE_CRYPTO": False, 58 "HAVE_DIRENT_H": False, 59 "HAVE_FICLONERANGE": False, 60 "HAVE_FILENO": True, 61 "HAVE_FSEEK": True, 62 "HAVE_FSEEKO": True, 63 "HAVE_FTELLO": True, 64 "HAVE_FTS_H": True, 65 "HAVE_GETPROGNAME": False, 66 "HAVE_GNUTLS": False, 67 "HAVE_LIBBZ2": False, 68 "HAVE_MKSTEMP": True, 69 "HAVE_NDIR_H": False, 70 "HAVE_OPEN": True, 71 "HAVE_OPENSSL": False, 72 "HAVE_SETMODE": False, 73 "HAVE_SHARED": True, 74 "HAVE_SNPRINTF": True, 75 "HAVE_SSIZE_T_LIBZIP": True, 76 "HAVE_STDBOOL_H": True, 77 "HAVE_STRCASECMP": True, 78 "HAVE_STRDUP": True, 79 "HAVE_STRICMP": False, 80 "HAVE_STRINGS_H": True, 81 "HAVE_STRTOLL": True, 82 "HAVE_STRTOULL": True, 83 "HAVE_STRUCT_TM_TM_ZONE": False, 84 "HAVE_SYS_DIR_H": False, 85 "HAVE_SYS_NDIR_H": False, 86 "HAVE_UNISTD_H": True, 87 "HAVE__CHMOD": False, 88 "HAVE__CLOSE": False, 89 "HAVE__DUP": False, 90 "HAVE__FDOPEN": False, 91 "HAVE__FILENO": False, 92 "HAVE__OPEN": False, 93 "HAVE__SETMODE": False, 94 "HAVE__SNPRINTF": False, 95 "HAVE__STRDUP": False, 96 "HAVE__STRICMP": False, 97 "HAVE__STRTOI64": False, 98 "HAVE__STRTOUI64": False, 99 "HAVE__UMASK": False, 100 "HAVE__UNLINK": False, 101 "HAVE___PROGNAME": False, 102 "WORDS_BIGENDIAN": False, 103} 104 105_DEFINES.update(dict([( 106 key, 107 value != None, 108) for key, value in _CMAKE_VARIABLES.items()])) 109 110_SUBSTITUTIONS.update(cmake_substitutions( 111 defines = _DEFINES, 112 vars = _CMAKE_VARIABLES, 113)) 114 115expand_template( 116 name = "config_h", 117 out = "config.h", 118 substitutions = _SUBSTITUTIONS, 119 template = "cmake-config.h.in", 120) 121 122_VARS = { 123 "LIBZIP_TYPES_INCLUDE": "#include <stdint.h>", 124 "PACKAGE_VERSION": "1.5.1", 125 "PACKAGE_VERSION_MAJOR": "1", 126 "PACKAGE_VERSION_MICRO": "1", 127 "PACKAGE_VERSION_MINOR": "5", 128} 129 130_VARS.update(dict([ 131 ( 132 "ZIP_{sign}INT{size}_T".format( 133 sign = sign.upper(), 134 size = size, 135 ), 136 "{sign}int{size}_t".format( 137 sign = sign.lower(), 138 size = size, 139 ), 140 ) 141 for sign in ("U", "") 142 for size in (8, 16, 32, 64) 143])) 144 145expand_template( 146 name = "zipconf_h", 147 out = "lib/zipconf.h", 148 substitutions = cmake_substitutions( 149 defines = { 150 "LIBZIP_VERSION": True, 151 "LIBZIP_VERSION_MAJOR": True, 152 "LIBZIP_VERSION_MICRO": True, 153 "LIBZIP_VERSION_MINOR": True, 154 "ZIP_STATIC": False, 155 }, 156 vars = _VARS, 157 ), 158 template = "cmake-zipconf.h.in", 159) 160 161cc_library( 162 name = "zip", 163 srcs = glob( 164 [ 165 "lib/*.c", 166 "lib/*.h", 167 ], 168 exclude = [ 169 "lib/*win32*", 170 "lib/zip_random_uwp.c", 171 "lib/*crypto*", 172 "lib/*aes*", 173 "lib/*bzip2*", 174 ], 175 ) + [ 176 "config.h", 177 ], 178 hdrs = [ 179 "lib/zip.h", 180 "lib/zipconf.h", 181 ], 182 copts = [ 183 "-DHAVE_CONFIG_H", 184 ], 185 includes = ["lib"], 186 deps = [ 187 "@zlib", 188 ], 189) 190