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