mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-18 09:58:46 +03:00
201 lines
4.8 KiB
Plaintext
201 lines
4.8 KiB
Plaintext
|
# 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.h",
|
||
|
"common/dictionary.c",
|
||
|
"common/dictionary.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/context.h",
|
||
|
"dec/decode.c",
|
||
|
"dec/huffman.c",
|
||
|
"dec/huffman.h",
|
||
|
"dec/port.h",
|
||
|
"dec/prefix.h",
|
||
|
"dec/state.c",
|
||
|
"dec/state.h",
|
||
|
"dec/transform.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" ]
|
||
|
}
|
||
|
|
||
|
if (current_toolchain == host_toolchain) {
|
||
|
executable("brotli") {
|
||
|
sources = [
|
||
|
"common/constants.h",
|
||
|
"enc/backward_references.c",
|
||
|
"enc/backward_references.h",
|
||
|
"enc/backward_references_hq.c",
|
||
|
"enc/backward_references_hq.h",
|
||
|
"enc/backward_references_inc.h",
|
||
|
"enc/bit_cost.c",
|
||
|
"enc/bit_cost.h",
|
||
|
"enc/bit_cost_inc.h",
|
||
|
"enc/block_encoder_inc.h",
|
||
|
"enc/block_splitter.c",
|
||
|
"enc/block_splitter.h",
|
||
|
"enc/block_splitter_inc.h",
|
||
|
"enc/brotli_bit_stream.c",
|
||
|
"enc/brotli_bit_stream.h",
|
||
|
"enc/cluster.c",
|
||
|
"enc/cluster.h",
|
||
|
"enc/cluster_inc.h",
|
||
|
"enc/command.h",
|
||
|
"enc/compress_fragment.c",
|
||
|
"enc/compress_fragment.h",
|
||
|
"enc/compress_fragment_two_pass.c",
|
||
|
"enc/compress_fragment_two_pass.h",
|
||
|
"enc/context.h",
|
||
|
"enc/dictionary_hash.c",
|
||
|
"enc/dictionary_hash.h",
|
||
|
"enc/encode.c",
|
||
|
"enc/entropy_encode.c",
|
||
|
"enc/entropy_encode.h",
|
||
|
"enc/entropy_encode_static.h",
|
||
|
"enc/fast_log.h",
|
||
|
"enc/find_match_length.h",
|
||
|
"enc/hash.h",
|
||
|
"enc/hash_forgetful_chain_inc.h",
|
||
|
"enc/hash_longest_match64_inc.h",
|
||
|
"enc/hash_longest_match_inc.h",
|
||
|
"enc/hash_longest_match_quickly_inc.h",
|
||
|
"enc/hash_to_binary_tree_inc.h",
|
||
|
"enc/histogram.c",
|
||
|
"enc/histogram.h",
|
||
|
"enc/histogram_inc.h",
|
||
|
"enc/literal_cost.c",
|
||
|
"enc/literal_cost.h",
|
||
|
"enc/memory.c",
|
||
|
"enc/memory.h",
|
||
|
"enc/metablock.c",
|
||
|
"enc/metablock.h",
|
||
|
"enc/metablock_inc.h",
|
||
|
"enc/port.h",
|
||
|
"enc/prefix.h",
|
||
|
"enc/quality.h",
|
||
|
"enc/ringbuffer.h",
|
||
|
"enc/static_dict.c",
|
||
|
"enc/static_dict.h",
|
||
|
"enc/static_dict_lut.h",
|
||
|
"enc/utf8_util.c",
|
||
|
"enc/utf8_util.h",
|
||
|
"enc/write_bits.h",
|
||
|
"tools/brotli.c",
|
||
|
]
|
||
|
public_configs = [ ":includes" ]
|
||
|
|
||
|
if (is_win) {
|
||
|
# Work around incremental linking randomly creating corrupt binaries,
|
||
|
# crbug.com/644525.
|
||
|
configs -= [ "//build/config/win:default_incremental_linking" ]
|
||
|
configs += [ "//build/config/win:no_incremental_linking" ]
|
||
|
}
|
||
|
|
||
|
deps = [
|
||
|
":common",
|
||
|
":dec",
|
||
|
":headers",
|
||
|
"//build/config:exe_and_shlib_deps",
|
||
|
"//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" ]
|
||
|
}
|