OLD | NEW |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 config("sdch_config") { | 5 config("sdch_config") { |
6 include_dirs = [ "open-vcdiff/src" ] | 6 include_dirs = [ "open-vcdiff/src" ] |
7 } | 7 } |
8 | 8 |
9 static_library("sdch") { | 9 static_library("sdch") { |
10 sources = [ | 10 sources = [ |
| 11 "logging_forward.h", |
11 "open-vcdiff/src/addrcache.cc", | 12 "open-vcdiff/src/addrcache.cc", |
12 "open-vcdiff/src/blockhash.cc", | 13 "open-vcdiff/src/blockhash.cc", |
13 "open-vcdiff/src/blockhash.h", | 14 "open-vcdiff/src/blockhash.h", |
14 "open-vcdiff/src/checksum.h", | 15 "open-vcdiff/src/checksum.h", |
15 "open-vcdiff/src/codetable.cc", | 16 "open-vcdiff/src/codetable.cc", |
16 "open-vcdiff/src/codetable.h", | 17 "open-vcdiff/src/codetable.h", |
17 "open-vcdiff/src/compile_assert.h", | 18 "open-vcdiff/src/compile_assert.h", |
18 "open-vcdiff/src/decodetable.cc", | 19 "open-vcdiff/src/decodetable.cc", |
19 "open-vcdiff/src/decodetable.h", | 20 "open-vcdiff/src/decodetable.h", |
20 "open-vcdiff/src/encodetable.cc", | 21 "open-vcdiff/src/encodetable.cc", |
21 "open-vcdiff/src/encodetable.h", | 22 "open-vcdiff/src/encodetable.h", |
22 "open-vcdiff/src/google/output_string.h", | 23 "open-vcdiff/src/google/output_string.h", |
23 "open-vcdiff/src/google/vcdecoder.h", | 24 "open-vcdiff/src/google/vcdecoder.h", |
24 "open-vcdiff/src/headerparser.cc", | 25 "open-vcdiff/src/headerparser.cc", |
25 "open-vcdiff/src/headerparser.h", | 26 "open-vcdiff/src/headerparser.h", |
26 "open-vcdiff/src/instruction_map.cc", | 27 "open-vcdiff/src/instruction_map.cc", |
27 "open-vcdiff/src/instruction_map.h", | 28 "open-vcdiff/src/instruction_map.h", |
28 "open-vcdiff/src/logging.cc", | |
29 "open-vcdiff/src/logging.h", | |
30 "open-vcdiff/src/rolling_hash.h", | 29 "open-vcdiff/src/rolling_hash.h", |
31 "open-vcdiff/src/testing.h", | 30 "open-vcdiff/src/testing.h", |
32 "open-vcdiff/src/varint_bigendian.cc", | 31 "open-vcdiff/src/varint_bigendian.cc", |
33 "open-vcdiff/src/varint_bigendian.h", | 32 "open-vcdiff/src/varint_bigendian.h", |
34 "open-vcdiff/src/vcdecoder.cc", | 33 "open-vcdiff/src/vcdecoder.cc", |
35 "open-vcdiff/src/vcdiff_defs.h", | 34 "open-vcdiff/src/vcdiff_defs.h", |
36 "open-vcdiff/src/vcdiffengine.cc", | 35 "open-vcdiff/src/vcdiffengine.cc", |
37 "open-vcdiff/src/vcdiffengine.h", | 36 "open-vcdiff/src/vcdiffengine.h", |
38 "open-vcdiff/vsprojects/config.h", | 37 "open-vcdiff/vsprojects/config.h", |
39 "open-vcdiff/vsprojects/stdint.h", | 38 "open-vcdiff/vsprojects/stdint.h", |
40 ] | 39 ] |
41 | 40 |
42 direct_dependent_configs = [ ":sdch_config" ] | 41 direct_dependent_configs = [ ":sdch_config" ] |
43 | 42 |
| 43 deps = [ |
| 44 "//base", |
| 45 "//third_party/zlib", |
| 46 ] |
| 47 |
44 if (is_linux || is_android) { | 48 if (is_linux || is_android) { |
45 include_dirs = [ "linux" ] | 49 include_dirs = [ "linux" ] |
46 } else if (is_ios) { | 50 } else if (is_ios) { |
47 include_dirs = [ "ios" ] | 51 include_dirs = [ "ios" ] |
48 } else if (is_mac) { | 52 } else if (is_mac) { |
49 include_dirs = [ "mac" ] | 53 include_dirs = [ "mac" ] |
50 } else if (is_win) { | 54 } else if (is_win) { |
51 include_dirs = [ "win" ] | 55 include_dirs = [ "win" ] |
52 } | 56 } |
53 | 57 |
54 deps = [ "//third_party/zlib" ] | 58 # open-vcdiff's logging.h introduces static initializers. This was |
55 | 59 # reported upstream years ago ( |
56 if (is_clang) { | 60 # https://code.google.com/p/open-vcdiff/issues/detail?id=33 ). Since |
| 61 # upstream won't fix this, work around it on the chromium side: |
| 62 # Inject a header that forwards to base/logging.h instead (which doesn't |
| 63 # introduce static initializers, and which prevents open-vcdiff's |
| 64 # logging.h from being used). |
| 65 logging_file = rebase_path("logging_forward.h", root_build_dir) |
| 66 if (is_win) { |
57 cflags = [ | 67 cflags = [ |
| 68 "/FI", rebase_path("//build/intsafe_workaround.h", root_build_dir), |
| 69 "/FI", logging_file, |
| 70 ] |
| 71 } else { |
| 72 cflags = [ "-include", logging_file ] |
| 73 if (is_linux) { |
58 # TODO(mostynb): remove this if open-vcdiff is ever updated for c++11: | 74 # TODO(mostynb): remove this if open-vcdiff is ever updated for c++11: |
59 "-Wno-deprecated-declarations", | 75 cflags += [ "-Wno-deprecated-declarations" ] |
60 ] | 76 } |
61 } | 77 } |
62 } | 78 } |
OLD | NEW |