xref: /aosp_15_r20/external/brotli/BUILD (revision f4ee7fba7774faf2a30f13154332c0a06550dbc4)
1*f4ee7fbaSAndroid Build Coastguard Worker# Description:
2*f4ee7fbaSAndroid Build Coastguard Worker#   Brotli is a generic-purpose lossless compression algorithm.
3*f4ee7fbaSAndroid Build Coastguard Worker
4*f4ee7fbaSAndroid Build Coastguard Workerpackage(
5*f4ee7fbaSAndroid Build Coastguard Worker    default_visibility = ["//visibility:public"],
6*f4ee7fbaSAndroid Build Coastguard Worker)
7*f4ee7fbaSAndroid Build Coastguard Worker
8*f4ee7fbaSAndroid Build Coastguard Workerlicenses(["notice"])  # MIT
9*f4ee7fbaSAndroid Build Coastguard Worker
10*f4ee7fbaSAndroid Build Coastguard Workerexports_files(["LICENSE"])
11*f4ee7fbaSAndroid Build Coastguard Worker
12*f4ee7fbaSAndroid Build Coastguard Workerconfig_setting(
13*f4ee7fbaSAndroid Build Coastguard Worker    name = "darwin",
14*f4ee7fbaSAndroid Build Coastguard Worker    values = {"cpu": "darwin"},
15*f4ee7fbaSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
16*f4ee7fbaSAndroid Build Coastguard Worker)
17*f4ee7fbaSAndroid Build Coastguard Worker
18*f4ee7fbaSAndroid Build Coastguard Workerconfig_setting(
19*f4ee7fbaSAndroid Build Coastguard Worker    name = "darwin_x86_64",
20*f4ee7fbaSAndroid Build Coastguard Worker    values = {"cpu": "darwin_x86_64"},
21*f4ee7fbaSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
22*f4ee7fbaSAndroid Build Coastguard Worker)
23*f4ee7fbaSAndroid Build Coastguard Worker
24*f4ee7fbaSAndroid Build Coastguard Workerconfig_setting(
25*f4ee7fbaSAndroid Build Coastguard Worker    name = "windows",
26*f4ee7fbaSAndroid Build Coastguard Worker    values = {"cpu": "x64_windows"},
27*f4ee7fbaSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
28*f4ee7fbaSAndroid Build Coastguard Worker)
29*f4ee7fbaSAndroid Build Coastguard Worker
30*f4ee7fbaSAndroid Build Coastguard Workerconfig_setting(
31*f4ee7fbaSAndroid Build Coastguard Worker    name = "windows_msvc",
32*f4ee7fbaSAndroid Build Coastguard Worker    values = {"cpu": "x64_windows_msvc"},
33*f4ee7fbaSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
34*f4ee7fbaSAndroid Build Coastguard Worker)
35*f4ee7fbaSAndroid Build Coastguard Worker
36*f4ee7fbaSAndroid Build Coastguard Workerconfig_setting(
37*f4ee7fbaSAndroid Build Coastguard Worker    name = "windows_msys",
38*f4ee7fbaSAndroid Build Coastguard Worker    values = {"cpu": "x64_windows_msys"},
39*f4ee7fbaSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
40*f4ee7fbaSAndroid Build Coastguard Worker)
41*f4ee7fbaSAndroid Build Coastguard Worker
42*f4ee7fbaSAndroid Build Coastguard Workerload(":compiler_config_setting.bzl", "create_msvc_config")
43*f4ee7fbaSAndroid Build Coastguard Worker
44*f4ee7fbaSAndroid Build Coastguard Workercreate_msvc_config()
45*f4ee7fbaSAndroid Build Coastguard Worker
46*f4ee7fbaSAndroid Build Coastguard WorkerSTRICT_C_OPTIONS = select({
47*f4ee7fbaSAndroid Build Coastguard Worker    ":msvc": [],
48*f4ee7fbaSAndroid Build Coastguard Worker    "//conditions:default": [
49*f4ee7fbaSAndroid Build Coastguard Worker        "--pedantic-errors",
50*f4ee7fbaSAndroid Build Coastguard Worker        "-Wall",
51*f4ee7fbaSAndroid Build Coastguard Worker        "-Wconversion",
52*f4ee7fbaSAndroid Build Coastguard Worker        "-Werror",
53*f4ee7fbaSAndroid Build Coastguard Worker        "-Wextra",
54*f4ee7fbaSAndroid Build Coastguard Worker        "-Wlong-long",
55*f4ee7fbaSAndroid Build Coastguard Worker        "-Wmissing-declarations",
56*f4ee7fbaSAndroid Build Coastguard Worker        "-Wmissing-prototypes",
57*f4ee7fbaSAndroid Build Coastguard Worker        "-Wno-strict-aliasing",
58*f4ee7fbaSAndroid Build Coastguard Worker        "-Wshadow",
59*f4ee7fbaSAndroid Build Coastguard Worker        "-Wsign-compare",
60*f4ee7fbaSAndroid Build Coastguard Worker    ],
61*f4ee7fbaSAndroid Build Coastguard Worker})
62*f4ee7fbaSAndroid Build Coastguard Worker
63*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
64*f4ee7fbaSAndroid Build Coastguard Worker    name = "public_headers",
65*f4ee7fbaSAndroid Build Coastguard Worker    srcs = glob(["c/include/brotli/*.h"]),
66*f4ee7fbaSAndroid Build Coastguard Worker)
67*f4ee7fbaSAndroid Build Coastguard Worker
68*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
69*f4ee7fbaSAndroid Build Coastguard Worker    name = "common_headers",
70*f4ee7fbaSAndroid Build Coastguard Worker    srcs = glob(["c/common/*.h"]),
71*f4ee7fbaSAndroid Build Coastguard Worker)
72*f4ee7fbaSAndroid Build Coastguard Worker
73*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
74*f4ee7fbaSAndroid Build Coastguard Worker    name = "common_sources",
75*f4ee7fbaSAndroid Build Coastguard Worker    srcs = glob(["c/common/*.c"]),
76*f4ee7fbaSAndroid Build Coastguard Worker)
77*f4ee7fbaSAndroid Build Coastguard Worker
78*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
79*f4ee7fbaSAndroid Build Coastguard Worker    name = "dec_headers",
80*f4ee7fbaSAndroid Build Coastguard Worker    srcs = glob(["c/dec/*.h"]),
81*f4ee7fbaSAndroid Build Coastguard Worker)
82*f4ee7fbaSAndroid Build Coastguard Worker
83*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
84*f4ee7fbaSAndroid Build Coastguard Worker    name = "dec_sources",
85*f4ee7fbaSAndroid Build Coastguard Worker    srcs = glob(["c/dec/*.c"]),
86*f4ee7fbaSAndroid Build Coastguard Worker)
87*f4ee7fbaSAndroid Build Coastguard Worker
88*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
89*f4ee7fbaSAndroid Build Coastguard Worker    name = "enc_headers",
90*f4ee7fbaSAndroid Build Coastguard Worker    srcs = glob(["c/enc/*.h"]),
91*f4ee7fbaSAndroid Build Coastguard Worker)
92*f4ee7fbaSAndroid Build Coastguard Worker
93*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
94*f4ee7fbaSAndroid Build Coastguard Worker    name = "enc_sources",
95*f4ee7fbaSAndroid Build Coastguard Worker    srcs = glob(["c/enc/*.c"]),
96*f4ee7fbaSAndroid Build Coastguard Worker)
97*f4ee7fbaSAndroid Build Coastguard Worker
98*f4ee7fbaSAndroid Build Coastguard Workercc_library(
99*f4ee7fbaSAndroid Build Coastguard Worker    name = "brotli_inc",
100*f4ee7fbaSAndroid Build Coastguard Worker    hdrs = [":public_headers"],
101*f4ee7fbaSAndroid Build Coastguard Worker    copts = STRICT_C_OPTIONS,
102*f4ee7fbaSAndroid Build Coastguard Worker    strip_include_prefix = "c/include",
103*f4ee7fbaSAndroid Build Coastguard Worker)
104*f4ee7fbaSAndroid Build Coastguard Worker
105*f4ee7fbaSAndroid Build Coastguard Workercc_library(
106*f4ee7fbaSAndroid Build Coastguard Worker    name = "brotlicommon",
107*f4ee7fbaSAndroid Build Coastguard Worker    srcs = [":common_sources"],
108*f4ee7fbaSAndroid Build Coastguard Worker    hdrs = [":common_headers"],
109*f4ee7fbaSAndroid Build Coastguard Worker    copts = STRICT_C_OPTIONS,
110*f4ee7fbaSAndroid Build Coastguard Worker    deps = [":brotli_inc"],
111*f4ee7fbaSAndroid Build Coastguard Worker)
112*f4ee7fbaSAndroid Build Coastguard Worker
113*f4ee7fbaSAndroid Build Coastguard Workercc_library(
114*f4ee7fbaSAndroid Build Coastguard Worker    name = "brotlidec",
115*f4ee7fbaSAndroid Build Coastguard Worker    srcs = [":dec_sources"],
116*f4ee7fbaSAndroid Build Coastguard Worker    hdrs = [":dec_headers"],
117*f4ee7fbaSAndroid Build Coastguard Worker    copts = STRICT_C_OPTIONS,
118*f4ee7fbaSAndroid Build Coastguard Worker    deps = [":brotlicommon"],
119*f4ee7fbaSAndroid Build Coastguard Worker)
120*f4ee7fbaSAndroid Build Coastguard Worker
121*f4ee7fbaSAndroid Build Coastguard Workercc_library(
122*f4ee7fbaSAndroid Build Coastguard Worker    name = "brotlienc",
123*f4ee7fbaSAndroid Build Coastguard Worker    srcs = [":enc_sources"],
124*f4ee7fbaSAndroid Build Coastguard Worker    hdrs = [":enc_headers"],
125*f4ee7fbaSAndroid Build Coastguard Worker    copts = STRICT_C_OPTIONS,
126*f4ee7fbaSAndroid Build Coastguard Worker    linkopts = ["-lm"],
127*f4ee7fbaSAndroid Build Coastguard Worker    deps = [":brotlicommon"],
128*f4ee7fbaSAndroid Build Coastguard Worker)
129*f4ee7fbaSAndroid Build Coastguard Worker
130*f4ee7fbaSAndroid Build Coastguard Workercc_binary(
131*f4ee7fbaSAndroid Build Coastguard Worker    name = "brotli",
132*f4ee7fbaSAndroid Build Coastguard Worker    srcs = ["c/tools/brotli.c"],
133*f4ee7fbaSAndroid Build Coastguard Worker    copts = STRICT_C_OPTIONS,
134*f4ee7fbaSAndroid Build Coastguard Worker    linkstatic = 1,
135*f4ee7fbaSAndroid Build Coastguard Worker    deps = [
136*f4ee7fbaSAndroid Build Coastguard Worker        ":brotlidec",
137*f4ee7fbaSAndroid Build Coastguard Worker        ":brotlienc",
138*f4ee7fbaSAndroid Build Coastguard Worker    ],
139*f4ee7fbaSAndroid Build Coastguard Worker)
140*f4ee7fbaSAndroid Build Coastguard Worker
141*f4ee7fbaSAndroid Build Coastguard Workerfilegroup(
142*f4ee7fbaSAndroid Build Coastguard Worker    name = "dictionary",
143*f4ee7fbaSAndroid Build Coastguard Worker    srcs = ["c/common/dictionary.bin"],
144*f4ee7fbaSAndroid Build Coastguard Worker)
145