| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- # Description:
- # Brotli is a generic-purpose lossless compression algorithm.
- package(
- default_visibility = ["//visibility:public"],
- )
- licenses(["notice"]) # MIT
- exports_files(["LICENSE"])
- config_setting(
- name = "clang-cl",
- flag_values = {
- "@bazel_tools//tools/cpp:compiler": "clang-cl",
- },
- visibility = ["//visibility:public"],
- )
- config_setting(
- name = "msvc",
- flag_values = {
- "@bazel_tools//tools/cpp:compiler": "msvc-cl",
- },
- visibility = ["//visibility:public"],
- )
- STRICT_C_OPTIONS = select({
- ":msvc": [],
- ":clang-cl": [
- "/W4",
- "-Wconversion",
- "-Wlong-long",
- "-Wmissing-declarations",
- "-Wmissing-prototypes",
- "-Wno-strict-aliasing",
- "-Wshadow",
- "-Wsign-compare",
- "-Wno-sign-conversion",
- ],
- "//conditions:default": [
- "--pedantic-errors",
- "-Wall",
- "-Wconversion",
- "-Werror",
- "-Wextra",
- "-Wlong-long",
- "-Wmissing-declarations",
- "-Wmissing-prototypes",
- "-Wno-strict-aliasing",
- "-Wshadow",
- "-Wsign-compare",
- ],
- })
- filegroup(
- name = "public_headers",
- srcs = glob(["c/include/brotli/*.h"]),
- )
- filegroup(
- name = "common_headers",
- srcs = glob(["c/common/*.h"]),
- )
- filegroup(
- name = "common_sources",
- srcs = glob(["c/common/*.c"]),
- )
- filegroup(
- name = "dec_headers",
- srcs = glob(["c/dec/*.h"]),
- )
- filegroup(
- name = "dec_sources",
- srcs = glob(["c/dec/*.c"]),
- )
- filegroup(
- name = "enc_headers",
- srcs = glob(["c/enc/*.h"]),
- )
- filegroup(
- name = "enc_sources",
- srcs = glob(["c/enc/*.c"]),
- )
- cc_library(
- name = "brotli_inc",
- hdrs = [":public_headers"],
- copts = STRICT_C_OPTIONS,
- strip_include_prefix = "c/include",
- )
- cc_library(
- name = "brotlicommon",
- srcs = [":common_sources"],
- hdrs = [":common_headers"],
- copts = STRICT_C_OPTIONS,
- deps = [":brotli_inc"],
- )
- cc_library(
- name = "brotlidec",
- srcs = [":dec_sources"],
- hdrs = [":dec_headers"],
- copts = STRICT_C_OPTIONS,
- deps = [":brotlicommon"],
- )
- cc_library(
- name = "brotlienc",
- srcs = [":enc_sources"],
- hdrs = [":enc_headers"],
- copts = STRICT_C_OPTIONS,
- linkopts = select({
- ":clang-cl": [],
- ":msvc": [],
- "//conditions:default": ["-lm"],
- }),
- deps = [":brotlicommon"],
- )
- cc_binary(
- name = "brotli",
- srcs = ["c/tools/brotli.c"],
- copts = STRICT_C_OPTIONS,
- linkstatic = 1,
- deps = [
- ":brotlidec",
- ":brotlienc",
- ],
- )
- filegroup(
- name = "dictionary",
- srcs = ["c/common/dictionary.bin"],
- )
|