xref: /aosp_15_r20/external/tflite-support/third_party/libzip.BUILD (revision b16991f985baa50654c05c5adbb3c8bbcfb40082)
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