Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 1 | # Description: |
| 2 | # Brotli is a generic-purpose lossless compression algorithm. |
| 3 | |
| 4 | package( |
| 5 | default_visibility = ["//visibility:public"], |
| 6 | ) |
| 7 | |
| 8 | licenses(["notice"]) # MIT |
| 9 | |
Eugene Kliuchnikov | b32cefe | 2016-06-17 16:24:51 +0200 | [diff] [blame] | 10 | STRICT_C_OPTIONS = [ |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 11 | "--pedantic-errors", |
| 12 | "-Wall", |
| 13 | "-Wconversion", |
| 14 | "-Werror", |
| 15 | "-Wextra", |
| 16 | "-Wlong-long", |
| 17 | "-Wmissing-declarations", |
Eugene Kliuchnikov | b32cefe | 2016-06-17 16:24:51 +0200 | [diff] [blame] | 18 | "-Wmissing-prototypes", |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 19 | "-Wno-strict-aliasing", |
| 20 | "-Wshadow", |
| 21 | "-Wsign-compare", |
| 22 | ] |
| 23 | |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 24 | filegroup( |
Eugene Kliuchnikov | 801f5f3 | 2016-08-22 13:28:22 +0200 | [diff] [blame] | 25 | name = "public_headers", |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 26 | srcs = glob(["include/brotli/*.h"]), |
Eugene Kliuchnikov | 801f5f3 | 2016-08-22 13:28:22 +0200 | [diff] [blame] | 27 | ) |
| 28 | |
| 29 | filegroup( |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 30 | name = "common_headers", |
| 31 | srcs = glob(["common/*.h"]), |
| 32 | ) |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 33 | |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 34 | filegroup( |
| 35 | name = "common_sources", |
| 36 | srcs = glob(["common/*.c"]), |
| 37 | ) |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 38 | |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 39 | filegroup( |
| 40 | name = "dec_headers", |
| 41 | srcs = glob(["dec/*.h"]), |
| 42 | ) |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 43 | |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 44 | filegroup( |
| 45 | name = "dec_sources", |
| 46 | srcs = glob(["dec/*.c"]), |
| 47 | ) |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 48 | |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 49 | filegroup( |
| 50 | name = "enc_headers", |
| 51 | srcs = glob(["enc/*.h"]), |
| 52 | ) |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 53 | |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 54 | filegroup( |
| 55 | name = "enc_sources", |
| 56 | srcs = glob(["enc/*.c"]), |
| 57 | ) |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 58 | |
Piotr Sikora | 2cc3323 | 2016-08-23 15:43:07 -0700 | [diff] [blame^] | 59 | cc_library( |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 60 | name = "brotli", |
| 61 | hdrs = [":public_headers"], |
Piotr Sikora | 2cc3323 | 2016-08-23 15:43:07 -0700 | [diff] [blame^] | 62 | copts = STRICT_C_OPTIONS, |
| 63 | includes = ["include"], |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 64 | ) |
| 65 | |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 66 | cc_library( |
| 67 | name = "brotli_common", |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 68 | srcs = [":common_sources"], |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 69 | hdrs = [":common_headers"], |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 70 | copts = STRICT_C_OPTIONS, |
Piotr Sikora | 2cc3323 | 2016-08-23 15:43:07 -0700 | [diff] [blame^] | 71 | deps = [":brotli"], |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 72 | ) |
| 73 | |
| 74 | cc_library( |
| 75 | name = "brotli_dec", |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 76 | srcs = [":dec_sources"], |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 77 | hdrs = [":dec_headers"], |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 78 | copts = STRICT_C_OPTIONS, |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 79 | deps = [":brotli_common"], |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 80 | ) |
| 81 | |
| 82 | cc_library( |
| 83 | name = "brotli_enc", |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 84 | srcs = [":enc_sources"], |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 85 | hdrs = [":enc_headers"], |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 86 | copts = STRICT_C_OPTIONS, |
Eugene Kliuchnikov | 8148001 | 2016-08-23 14:40:33 +0200 | [diff] [blame] | 87 | deps = [":brotli_common"], |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 88 | ) |
| 89 | |
| 90 | cc_binary( |
| 91 | name = "bro", |
Eugene Kliuchnikov | b32cefe | 2016-06-17 16:24:51 +0200 | [diff] [blame] | 92 | srcs = ["tools/bro.c"], |
| 93 | copts = STRICT_C_OPTIONS, |
Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 94 | linkstatic = 1, |
Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 95 | deps = [ |
| 96 | ":brotli_dec", |
| 97 | ":brotli_enc", |
| 98 | ], |
| 99 | ) |