blob: 977b4dc24f732079eb043c207de3e454791ea2fc [file] [log] [blame]
package(
default_visibility = ["//visibility:public"],
)
load("@io_kythe//tools:build_rules/expand_template.bzl", "cmake_substitutions", "expand_template")
_CMAKE_VARIABLES = {
"INT16_T_LIBZIP": 2,
"INT32_T_LIBZIP": 4,
"INT64_T_LIBZIP": 8,
"INT8_T_LIBZIP": 1,
"INT_LIBZIP": 4,
"LIBZIP_TYPES_INCLUDE": "#include <stdint.h>",
"LONG_LIBZIP": 8,
"LONG_LONG_LIBZIP": 8,
"PACKAGE_VERSION": "1.5.1",
"PACKAGE_VERSION_MAJOR": "1",
"PACKAGE_VERSION_MICRO": "1",
"PACKAGE_VERSION_MINOR": "5",
"SHORT_LIBZIP": 2,
"SIZEOF_OFF_T": 8,
"SIZE_T_LIBZIP": 8,
"SSIZE_T_LIBZIP": 8,
"UINT16_T_LIBZIP": 2,
"UINT32_T_LIBZIP": 4,
"UINT64_T_LIBZIP": 8,
"UINT8_T_LIBZIP": 1,
"__INT16_LIBZIP": None,
"__INT32_LIBZIP": None,
"__INT64_LIBZIP": None,
"__INT8_LIBZIP": None,
}
_CMAKE_VARIABLES.update(dict([
(
"ZIP_{sign}INT{size}_T".format(
sign = sign.upper(),
size = size,
),
"{sign}int{size}_t".format(
sign = sign.lower(),
size = size,
),
)
for sign in ("U", "")
for size in (8, 16, 32, 64)
]))
_SUBSTITUTIONS = {
"@PACKAGE@": "libzip",
"@VERSION@": "1.5.1", # Keep in sync with actual package!
}
_DEFINES = {
"HAVE_CLONEFILE": False,
"HAVE_COMMONCRYPTO": False,
"HAVE_CRYPTO": False,
"HAVE_DIRENT_H": False,
"HAVE_FICLONERANGE": False,
"HAVE_FILENO": True,
"HAVE_FSEEK": True,
"HAVE_FSEEKO": True,
"HAVE_FTELLO": True,
"HAVE_FTS_H": True,
"HAVE_GETPROGNAME": False,
"HAVE_GNUTLS": False,
"HAVE_LIBBZ2": False,
"HAVE_MKSTEMP": True,
"HAVE_NDIR_H": False,
"HAVE_OPEN": True,
"HAVE_OPENSSL": False,
"HAVE_SETMODE": False,
"HAVE_SHARED": True,
"HAVE_SNPRINTF": True,
"HAVE_SSIZE_T_LIBZIP": True,
"HAVE_STDBOOL_H": True,
"HAVE_STRCASECMP": True,
"HAVE_STRDUP": True,
"HAVE_STRICMP": False,
"HAVE_STRINGS_H": True,
"HAVE_STRTOLL": True,
"HAVE_STRTOULL": True,
"HAVE_STRUCT_TM_TM_ZONE": False,
"HAVE_SYS_DIR_H": False,
"HAVE_SYS_NDIR_H": False,
"HAVE_UNISTD_H": True,
"HAVE__CHMOD": False,
"HAVE__CLOSE": False,
"HAVE__DUP": False,
"HAVE__FDOPEN": False,
"HAVE__FILENO": False,
"HAVE__OPEN": False,
"HAVE__SETMODE": False,
"HAVE__SNPRINTF": False,
"HAVE__STRDUP": False,
"HAVE__STRICMP": False,
"HAVE__STRTOI64": False,
"HAVE__STRTOUI64": False,
"HAVE__UMASK": False,
"HAVE__UNLINK": False,
"HAVE___PROGNAME": False,
"WORDS_BIGENDIAN": False,
}
_DEFINES.update(dict([(
key,
value != None,
) for key, value in _CMAKE_VARIABLES.items()]))
_SUBSTITUTIONS.update(cmake_substitutions(
defines = _DEFINES,
vars = _CMAKE_VARIABLES,
))
expand_template(
name = "config_h",
out = "config.h",
substitutions = _SUBSTITUTIONS,
template = "cmake-config.h.in",
)
_VARS = {
"LIBZIP_TYPES_INCLUDE": "#include <stdint.h>",
"PACKAGE_VERSION": "1.5.1",
"PACKAGE_VERSION_MAJOR": "1",
"PACKAGE_VERSION_MICRO": "1",
"PACKAGE_VERSION_MINOR": "5",
}
_VARS.update(dict([
(
"ZIP_{sign}INT{size}_T".format(
sign = sign.upper(),
size = size,
),
"{sign}int{size}_t".format(
sign = sign.lower(),
size = size,
),
)
for sign in ("U", "")
for size in (8, 16, 32, 64)
]))
expand_template(
name = "zipconf_h",
out = "lib/zipconf.h",
substitutions = cmake_substitutions(
defines = {
"LIBZIP_VERSION": True,
"LIBZIP_VERSION_MAJOR": True,
"LIBZIP_VERSION_MICRO": True,
"LIBZIP_VERSION_MINOR": True,
"ZIP_STATIC": False,
},
vars = _VARS,
),
template = "cmake-zipconf.h.in",
)
cc_library(
name = "zip",
srcs = glob(
[
"lib/*.c",
"lib/*.h",
],
exclude = [
"lib/*win32*",
"lib/zip_random_uwp.c",
"lib/*crypto*",
"lib/*aes*",
"lib/*bzip2*",
],
) + [
"config.h",
],
hdrs = [
"lib/zip.h",
"lib/zipconf.h",
],
copts = [
"-DHAVE_CONFIG_H",
],
includes = ["lib"],
deps = [
"//external:zlib",
],
)