xref: /aosp_15_r20/external/tensorflow/third_party/snappy.BUILD (revision b6fb3261f9314811a0f4371741dbb8839866f948)
1*b6fb3261SAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"])
2*b6fb3261SAndroid Build Coastguard Worker
3*b6fb3261SAndroid Build Coastguard Workerlicenses(["notice"])  # BSD 3-Clause
4*b6fb3261SAndroid Build Coastguard Worker
5*b6fb3261SAndroid Build Coastguard Workerexports_files(["COPYING"])
6*b6fb3261SAndroid Build Coastguard Worker
7*b6fb3261SAndroid Build Coastguard Workercc_library(
8*b6fb3261SAndroid Build Coastguard Worker    name = "snappy",
9*b6fb3261SAndroid Build Coastguard Worker    srcs = [
10*b6fb3261SAndroid Build Coastguard Worker        "config.h",
11*b6fb3261SAndroid Build Coastguard Worker        "snappy.cc",
12*b6fb3261SAndroid Build Coastguard Worker        "snappy.h",
13*b6fb3261SAndroid Build Coastguard Worker        "snappy-internal.h",
14*b6fb3261SAndroid Build Coastguard Worker        "snappy-sinksource.cc",
15*b6fb3261SAndroid Build Coastguard Worker        "snappy-sinksource.h",
16*b6fb3261SAndroid Build Coastguard Worker        "snappy-stubs-internal.cc",
17*b6fb3261SAndroid Build Coastguard Worker        "snappy-stubs-internal.h",
18*b6fb3261SAndroid Build Coastguard Worker        "snappy-stubs-public.h",
19*b6fb3261SAndroid Build Coastguard Worker    ],
20*b6fb3261SAndroid Build Coastguard Worker    hdrs = ["snappy.h"],
21*b6fb3261SAndroid Build Coastguard Worker    copts = ["-DHAVE_CONFIG_H"] + select({
22*b6fb3261SAndroid Build Coastguard Worker        "@org_tensorflow//tensorflow:windows": [],
23*b6fb3261SAndroid Build Coastguard Worker        "//conditions:default": [
24*b6fb3261SAndroid Build Coastguard Worker            "-fno-exceptions",
25*b6fb3261SAndroid Build Coastguard Worker            "-Wno-sign-compare",
26*b6fb3261SAndroid Build Coastguard Worker            "-Wno-shift-negative-value",
27*b6fb3261SAndroid Build Coastguard Worker            "-Wno-implicit-function-declaration",
28*b6fb3261SAndroid Build Coastguard Worker        ],
29*b6fb3261SAndroid Build Coastguard Worker    }),
30*b6fb3261SAndroid Build Coastguard Worker    defines = select({
31*b6fb3261SAndroid Build Coastguard Worker        "@org_tensorflow//tensorflow:windows": [],
32*b6fb3261SAndroid Build Coastguard Worker        "//conditions:default": ["HAVE_SYS_UIO_H"],
33*b6fb3261SAndroid Build Coastguard Worker    }),
34*b6fb3261SAndroid Build Coastguard Worker)
35*b6fb3261SAndroid Build Coastguard Worker
36*b6fb3261SAndroid Build Coastguard Workergenrule(
37*b6fb3261SAndroid Build Coastguard Worker    name = "config_h",
38*b6fb3261SAndroid Build Coastguard Worker    outs = ["config.h"],
39*b6fb3261SAndroid Build Coastguard Worker    cmd = "\n".join([
40*b6fb3261SAndroid Build Coastguard Worker        "cat <<'EOF' >$@",
41*b6fb3261SAndroid Build Coastguard Worker        "#define HAVE_STDDEF_H 1",
42*b6fb3261SAndroid Build Coastguard Worker        "#define HAVE_STDINT_H 1",
43*b6fb3261SAndroid Build Coastguard Worker        "",
44*b6fb3261SAndroid Build Coastguard Worker        "#ifdef __has_builtin",
45*b6fb3261SAndroid Build Coastguard Worker        "#  if !defined(HAVE_BUILTIN_EXPECT) && __has_builtin(__builtin_expect)",
46*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_BUILTIN_EXPECT 1",
47*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
48*b6fb3261SAndroid Build Coastguard Worker        "#  if !defined(HAVE_BUILTIN_CTZ) && __has_builtin(__builtin_ctzll)",
49*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_BUILTIN_CTZ 1",
50*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
51*b6fb3261SAndroid Build Coastguard Worker        "#elif defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 4)",
52*b6fb3261SAndroid Build Coastguard Worker        "#  ifndef HAVE_BUILTIN_EXPECT",
53*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_BUILTIN_EXPECT 1",
54*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
55*b6fb3261SAndroid Build Coastguard Worker        "#  ifndef HAVE_BUILTIN_CTZ",
56*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_BUILTIN_CTZ 1",
57*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
58*b6fb3261SAndroid Build Coastguard Worker        "#endif",
59*b6fb3261SAndroid Build Coastguard Worker        "",
60*b6fb3261SAndroid Build Coastguard Worker        "#ifdef __has_include",
61*b6fb3261SAndroid Build Coastguard Worker        "#  if !defined(HAVE_BYTESWAP_H) && __has_include(<byteswap.h>)",
62*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_BYTESWAP_H 1",
63*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
64*b6fb3261SAndroid Build Coastguard Worker        "#  if !defined(HAVE_UNISTD_H) && __has_include(<unistd.h>)",
65*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_UNISTD_H 1",
66*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
67*b6fb3261SAndroid Build Coastguard Worker        "#  if !defined(HAVE_SYS_ENDIAN_H) && __has_include(<sys/endian.h>)",
68*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_SYS_ENDIAN_H 1",
69*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
70*b6fb3261SAndroid Build Coastguard Worker        "#  if !defined(HAVE_SYS_MMAN_H) && __has_include(<sys/mman.h>)",
71*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_SYS_MMAN_H 1",
72*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
73*b6fb3261SAndroid Build Coastguard Worker        "#  if !defined(HAVE_SYS_UIO_H) && __has_include(<sys/uio.h>)",
74*b6fb3261SAndroid Build Coastguard Worker        "#    define HAVE_SYS_UIO_H 1",
75*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
76*b6fb3261SAndroid Build Coastguard Worker        "#endif",
77*b6fb3261SAndroid Build Coastguard Worker        "",
78*b6fb3261SAndroid Build Coastguard Worker        "#ifndef SNAPPY_IS_BIG_ENDIAN",
79*b6fb3261SAndroid Build Coastguard Worker        "#  ifdef __s390x__",
80*b6fb3261SAndroid Build Coastguard Worker        "#    define SNAPPY_IS_BIG_ENDIAN 1",
81*b6fb3261SAndroid Build Coastguard Worker        "#  elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__",
82*b6fb3261SAndroid Build Coastguard Worker        "#    define SNAPPY_IS_BIG_ENDIAN 1",
83*b6fb3261SAndroid Build Coastguard Worker        "#  endif",
84*b6fb3261SAndroid Build Coastguard Worker        "#endif",
85*b6fb3261SAndroid Build Coastguard Worker        "EOF",
86*b6fb3261SAndroid Build Coastguard Worker    ]),
87*b6fb3261SAndroid Build Coastguard Worker)
88*b6fb3261SAndroid Build Coastguard Worker
89*b6fb3261SAndroid Build Coastguard Workergenrule(
90*b6fb3261SAndroid Build Coastguard Worker    name = "snappy_stubs_public_h",
91*b6fb3261SAndroid Build Coastguard Worker    srcs = ["snappy-stubs-public.h.in"],
92*b6fb3261SAndroid Build Coastguard Worker    outs = ["snappy-stubs-public.h"],
93*b6fb3261SAndroid Build Coastguard Worker    cmd = ("sed " +
94*b6fb3261SAndroid Build Coastguard Worker           "-e 's/$${\\(.*\\)_01}/\\1/g' " +
95*b6fb3261SAndroid Build Coastguard Worker           "-e 's/$${SNAPPY_MAJOR}/1/g' " +
96*b6fb3261SAndroid Build Coastguard Worker           "-e 's/$${SNAPPY_MINOR}/1/g' " +
97*b6fb3261SAndroid Build Coastguard Worker           "-e 's/$${SNAPPY_PATCHLEVEL}/4/g' " +
98*b6fb3261SAndroid Build Coastguard Worker           "$< >$@"),
99*b6fb3261SAndroid Build Coastguard Worker)
100