| Index: sdch/BUILD.gn
|
| diff --git a/sdch/BUILD.gn b/sdch/BUILD.gn
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3ceeeb47b054c9dd609819bf006889a8e0660bda
|
| --- /dev/null
|
| +++ b/sdch/BUILD.gn
|
| @@ -0,0 +1,99 @@
|
| +# 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.
|
| +
|
| +config("sdch_config") {
|
| + include_dirs = [ "open-vcdiff/src" ]
|
| +}
|
| +
|
| +static_library("sdch") {
|
| + sources = [
|
| + "logging_forward.h",
|
| + "open-vcdiff/src/addrcache.cc",
|
| + "open-vcdiff/src/blockhash.cc",
|
| + "open-vcdiff/src/blockhash.h",
|
| + "open-vcdiff/src/checksum.h",
|
| + "open-vcdiff/src/codetable.cc",
|
| + "open-vcdiff/src/codetable.h",
|
| + "open-vcdiff/src/compile_assert.h",
|
| + "open-vcdiff/src/decodetable.cc",
|
| + "open-vcdiff/src/decodetable.h",
|
| + "open-vcdiff/src/encodetable.cc",
|
| + "open-vcdiff/src/encodetable.h",
|
| + "open-vcdiff/src/google/output_string.h",
|
| + "open-vcdiff/src/google/vcdecoder.h",
|
| + "open-vcdiff/src/google/vcencoder.h",
|
| + "open-vcdiff/src/headerparser.cc",
|
| + "open-vcdiff/src/headerparser.h",
|
| + "open-vcdiff/src/instruction_map.cc",
|
| + "open-vcdiff/src/instruction_map.h",
|
| + "open-vcdiff/src/jsonwriter.cc",
|
| + "open-vcdiff/src/jsonwriter.h",
|
| + "open-vcdiff/src/rolling_hash.h",
|
| + "open-vcdiff/src/testing.h",
|
| + "open-vcdiff/src/varint_bigendian.cc",
|
| + "open-vcdiff/src/varint_bigendian.h",
|
| + "open-vcdiff/src/vcdecoder.cc",
|
| + "open-vcdiff/src/vcdiff_defs.h",
|
| + "open-vcdiff/src/vcdiffengine.cc",
|
| + "open-vcdiff/src/vcdiffengine.h",
|
| + "open-vcdiff/src/vcencoder.cc",
|
| + "open-vcdiff/vsprojects/config.h",
|
| + "open-vcdiff/vsprojects/stdint.h",
|
| + ]
|
| +
|
| + public_configs = [ ":sdch_config" ]
|
| +
|
| + deps = [
|
| + "//base",
|
| + "//third_party/zlib",
|
| + ]
|
| +
|
| + # gn orders flags on a target before flags from configs. The default config
|
| + # adds -Wall, and these flags have to be after -Wall -- so they need to come
|
| + # from a config and can't be on the target directly.
|
| + config("sdch_warnings") {
|
| + cflags = []
|
| + if (is_linux) {
|
| + # TODO(mostynb): remove this if open-vcdiff is ever updated for c++11:
|
| + cflags += [ "-Wno-deprecated-declarations" ]
|
| + }
|
| +
|
| + if (is_clang) {
|
| + # sdch uses the pre-c++11 typedef-as-static_assert hack.
|
| + # https://code.google.com/p/open-vcdiff/issues/detail?id=44
|
| + cflags += [ "-Wno-unused-local-typedef" ]
|
| + }
|
| + }
|
| + configs += [ ":sdch_warnings" ]
|
| +
|
| + if (is_linux || is_android) {
|
| + include_dirs = [ "linux" ]
|
| + } else if (is_ios) {
|
| + include_dirs = [ "ios" ]
|
| + } else if (is_mac) {
|
| + include_dirs = [ "mac" ]
|
| + } else if (is_win) {
|
| + include_dirs = [ "win" ]
|
| + }
|
| +
|
| + # open-vcdiff's logging.h introduces static initializers. This was
|
| + # reported upstream years ago (
|
| + # https://code.google.com/p/open-vcdiff/issues/detail?id=33 ). Since
|
| + # upstream won't fix this, work around it on the chromium side:
|
| + # Inject a header that forwards to base/logging.h instead (which doesn't
|
| + # introduce static initializers, and which prevents open-vcdiff's
|
| + # logging.h from being used).
|
| + if (is_win) {
|
| + cflags = [
|
| + "/FI",
|
| + "sdch/logging_forward.h",
|
| + ]
|
| + } else {
|
| + logging_file = rebase_path("logging_forward.h", root_build_dir)
|
| + cflags = [
|
| + "-include",
|
| + logging_file,
|
| + ]
|
| + }
|
| +}
|
|
|