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