OLD | NEW |
(Empty) | |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 config("sdch_config") { |
| 6 include_dirs = [ "open-vcdiff/src" ] |
| 7 } |
| 8 |
| 9 static_library("sdch") { |
| 10 sources = [ |
| 11 "logging_forward.h", |
| 12 "open-vcdiff/src/addrcache.cc", |
| 13 "open-vcdiff/src/blockhash.cc", |
| 14 "open-vcdiff/src/blockhash.h", |
| 15 "open-vcdiff/src/checksum.h", |
| 16 "open-vcdiff/src/codetable.cc", |
| 17 "open-vcdiff/src/codetable.h", |
| 18 "open-vcdiff/src/compile_assert.h", |
| 19 "open-vcdiff/src/decodetable.cc", |
| 20 "open-vcdiff/src/decodetable.h", |
| 21 "open-vcdiff/src/encodetable.cc", |
| 22 "open-vcdiff/src/encodetable.h", |
| 23 "open-vcdiff/src/google/output_string.h", |
| 24 "open-vcdiff/src/google/vcdecoder.h", |
| 25 "open-vcdiff/src/google/vcencoder.h", |
| 26 "open-vcdiff/src/headerparser.cc", |
| 27 "open-vcdiff/src/headerparser.h", |
| 28 "open-vcdiff/src/instruction_map.cc", |
| 29 "open-vcdiff/src/instruction_map.h", |
| 30 "open-vcdiff/src/jsonwriter.cc", |
| 31 "open-vcdiff/src/jsonwriter.h", |
| 32 "open-vcdiff/src/rolling_hash.h", |
| 33 "open-vcdiff/src/testing.h", |
| 34 "open-vcdiff/src/varint_bigendian.cc", |
| 35 "open-vcdiff/src/varint_bigendian.h", |
| 36 "open-vcdiff/src/vcdecoder.cc", |
| 37 "open-vcdiff/src/vcdiff_defs.h", |
| 38 "open-vcdiff/src/vcdiffengine.cc", |
| 39 "open-vcdiff/src/vcdiffengine.h", |
| 40 "open-vcdiff/src/vcencoder.cc", |
| 41 "open-vcdiff/vsprojects/config.h", |
| 42 "open-vcdiff/vsprojects/stdint.h", |
| 43 ] |
| 44 |
| 45 public_configs = [ ":sdch_config" ] |
| 46 |
| 47 deps = [ |
| 48 "//base", |
| 49 "//third_party/zlib", |
| 50 ] |
| 51 |
| 52 # gn orders flags on a target before flags from configs. The default config |
| 53 # adds -Wall, and these flags have to be after -Wall -- so they need to come |
| 54 # from a config and can't be on the target directly. |
| 55 config("sdch_warnings") { |
| 56 cflags = [] |
| 57 if (is_linux) { |
| 58 # TODO(mostynb): remove this if open-vcdiff is ever updated for c++11: |
| 59 cflags += [ "-Wno-deprecated-declarations" ] |
| 60 } |
| 61 |
| 62 if (is_clang) { |
| 63 # sdch uses the pre-c++11 typedef-as-static_assert hack. |
| 64 # https://code.google.com/p/open-vcdiff/issues/detail?id=44 |
| 65 cflags += [ "-Wno-unused-local-typedef" ] |
| 66 } |
| 67 } |
| 68 configs += [ ":sdch_warnings" ] |
| 69 |
| 70 if (is_linux || is_android) { |
| 71 include_dirs = [ "linux" ] |
| 72 } else if (is_ios) { |
| 73 include_dirs = [ "ios" ] |
| 74 } else if (is_mac) { |
| 75 include_dirs = [ "mac" ] |
| 76 } else if (is_win) { |
| 77 include_dirs = [ "win" ] |
| 78 } |
| 79 |
| 80 # open-vcdiff's logging.h introduces static initializers. This was |
| 81 # reported upstream years ago ( |
| 82 # https://code.google.com/p/open-vcdiff/issues/detail?id=33 ). Since |
| 83 # upstream won't fix this, work around it on the chromium side: |
| 84 # Inject a header that forwards to base/logging.h instead (which doesn't |
| 85 # introduce static initializers, and which prevents open-vcdiff's |
| 86 # logging.h from being used). |
| 87 if (is_win) { |
| 88 cflags = [ |
| 89 "/FI", |
| 90 "sdch/logging_forward.h", |
| 91 ] |
| 92 } else { |
| 93 logging_file = rebase_path("logging_forward.h", root_build_dir) |
| 94 cflags = [ |
| 95 "-include", |
| 96 logging_file, |
| 97 ] |
| 98 } |
| 99 } |
OLD | NEW |