123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- # Copyright 2014 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- import("//testing/libfuzzer/fuzzer_test.gni")
- if (is_win) {
- import("//build/config/win/visual_studio_version.gni")
- }
- config("includes") {
- include_dirs = [ "include" ]
- }
- source_set("headers") {
- sources = [
- "include/brotli/decode.h",
- "include/brotli/encode.h",
- "include/brotli/port.h",
- "include/brotli/types.h",
- ]
- }
- common_sources = [
- "common/constants.c",
- "common/constants.h",
- "common/context.c",
- "common/context.h",
- "common/dictionary.c",
- "common/dictionary.h",
- "common/platform.c",
- "common/platform.h",
- "common/transform.c",
- "common/transform.h",
- "common/version.h",
- ]
- static_library("common") {
- sources = common_sources
- public_configs = [ ":includes" ]
- deps = [ ":headers" ]
- }
- static_library("common_no_dictionary_data") {
- sources = common_sources
- public_configs = [ ":includes" ]
- deps = [ ":headers" ]
- defines = [ "BROTLI_EXTERNAL_DICTIONARY_DATA" ]
- }
- dec_sources = [
- "dec/bit_reader.c",
- "dec/bit_reader.h",
- "dec/decode.c",
- "dec/huffman.c",
- "dec/huffman.h",
- "dec/prefix.h",
- "dec/state.c",
- "dec/state.h",
- ]
- enc_sources = [
- "enc/backward_references_hq.c",
- "enc/backward_references_hq.h",
- "enc/backward_references_inc.h",
- "enc/backward_references.c",
- "enc/backward_references.h",
- "enc/bit_cost_inc.h",
- "enc/bit_cost.c",
- "enc/bit_cost.h",
- "enc/block_encoder_inc.h",
- "enc/block_splitter_inc.h",
- "enc/block_splitter.c",
- "enc/block_splitter.h",
- "enc/brotli_bit_stream.c",
- "enc/brotli_bit_stream.h",
- "enc/cluster_inc.h",
- "enc/cluster.c",
- "enc/cluster.h",
- "enc/command.c",
- "enc/command.h",
- "enc/compress_fragment_two_pass.c",
- "enc/compress_fragment_two_pass.h",
- "enc/compress_fragment.c",
- "enc/compress_fragment.h",
- "enc/dictionary_hash.c",
- "enc/dictionary_hash.h",
- "enc/encode.c",
- "enc/encoder_dict.c",
- "enc/encoder_dict.h",
- "enc/entropy_encode_static.h",
- "enc/entropy_encode.c",
- "enc/entropy_encode.h",
- "enc/fast_log.c",
- "enc/fast_log.h",
- "enc/find_match_length.h",
- "enc/hash_composite_inc.h",
- "enc/hash_forgetful_chain_inc.h",
- "enc/hash_longest_match_inc.h",
- "enc/hash_longest_match_quickly_inc.h",
- "enc/hash_longest_match64_inc.h",
- "enc/hash_rolling_inc.h",
- "enc/hash_to_binary_tree_inc.h",
- "enc/hash.h",
- "enc/histogram_inc.h",
- "enc/histogram.c",
- "enc/histogram.h",
- "enc/literal_cost.c",
- "enc/literal_cost.h",
- "enc/memory.c",
- "enc/memory.h",
- "enc/metablock_inc.h",
- "enc/metablock.c",
- "enc/metablock.h",
- "enc/params.h",
- "enc/prefix.h",
- "enc/quality.h",
- "enc/ringbuffer.h",
- "enc/static_dict_lut.h",
- "enc/static_dict.c",
- "enc/static_dict.h",
- "enc/utf8_util.c",
- "enc/utf8_util.h",
- "enc/write_bits.h",
- ]
- static_library("dec") {
- sources = dec_sources
- public_configs = [ ":includes" ]
- public_deps = [ ":headers" ]
- deps = [ ":common" ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- # Since we never debug brotli, freeze the optimizations to -O2.
- configs -= [ "//build/config/compiler:default_optimization" ]
- configs += [ "//build/config/compiler:optimize_max" ]
- }
- static_library("dec_no_dictionary_data") {
- sources = dec_sources
- public_configs = [ ":includes" ]
- public_deps = [ ":headers" ]
- deps = [ ":common_no_dictionary_data" ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- # Since we never debug brotli, freeze the optimizations to -O2.
- configs -= [ "//build/config/compiler:default_optimization" ]
- configs += [ "//build/config/compiler:optimize_max" ]
- }
- static_library("enc") {
- sources = enc_sources
- public_configs = [ ":includes" ]
- public_deps = [ ":headers" ]
- deps = [ ":common" ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- # Since we never debug brotli, freeze the optimizations to -O2.
- configs -= [ "//build/config/compiler:default_optimization" ]
- configs += [ "//build/config/compiler:optimize_max" ]
- }
- if (current_toolchain == host_toolchain) {
- executable("brotli") {
- sources = [ "tools/brotli.c" ]
- public_configs = [ ":includes" ]
- deps = [
- ":common",
- ":dec",
- ":enc",
- ":headers",
- "//build/win:default_exe_manifest",
- ]
- if (is_win && visual_studio_version == "2015") {
- # Disabling "result of 32-bit shift implicitly converted to 64 bits",
- # caused by code like: foo |= (1 << i); // warning 4334
- cflags = [ "/wd4334" ]
- }
- # Always build release since this is a build tool.
- if (is_debug) {
- configs -= [ "//build/config:debug" ]
- configs += [ "//build/config:release" ]
- }
- }
- }
- fuzzer_test("brotli_fuzzer") {
- sources = [ "fuzz/decode_fuzzer.cc" ]
- deps = [ ":dec" ]
- libfuzzer_options = [ "max_len=1280" ]
- }
|