145 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
# Description:
 | 
						|
#   Brotli is a generic-purpose lossless compression algorithm.
 | 
						|
 | 
						|
package(
 | 
						|
    default_visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
licenses(["notice"])  # MIT
 | 
						|
 | 
						|
exports_files(["LICENSE"])
 | 
						|
 | 
						|
config_setting(
 | 
						|
    name = "darwin",
 | 
						|
    values = {"cpu": "darwin"},
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
config_setting(
 | 
						|
    name = "darwin_x86_64",
 | 
						|
    values = {"cpu": "darwin_x86_64"},
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
config_setting(
 | 
						|
    name = "windows",
 | 
						|
    values = {"cpu": "x64_windows"},
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
config_setting(
 | 
						|
    name = "windows_msvc",
 | 
						|
    values = {"cpu": "x64_windows_msvc"},
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
config_setting(
 | 
						|
    name = "windows_msys",
 | 
						|
    values = {"cpu": "x64_windows_msys"},
 | 
						|
    visibility = ["//visibility:public"],
 | 
						|
)
 | 
						|
 | 
						|
load(":compiler_config_setting.bzl", "create_msvc_config")
 | 
						|
 | 
						|
create_msvc_config()
 | 
						|
 | 
						|
STRICT_C_OPTIONS = select({
 | 
						|
    ":msvc": [],
 | 
						|
    "//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 = ["-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"],
 | 
						|
)
 |