| # Copyright (c) 2012 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. |
| |
| { |
| 'variables': { |
| 'chromium_code': 1, |
| }, |
| 'targets': [ |
| { |
| 'target_name': 'sdch', |
| 'type': 'static_library', |
| 'dependencies': [ |
| '../base/base.gyp:base', |
| '../third_party/zlib/zlib.gyp:zlib', |
| ], |
| '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.h', |
| 'open-vcdiff/src/jsonwriter.cc', |
| '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/vcencoder.cc', |
| 'open-vcdiff/src/vcdiff_defs.h', |
| 'open-vcdiff/src/vcdiffengine.cc', |
| 'open-vcdiff/src/vcdiffengine.h', |
| 'open-vcdiff/vsprojects/config.h', |
| 'open-vcdiff/vsprojects/stdint.h', |
| ], |
| 'include_dirs': [ |
| 'open-vcdiff/src', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ |
| 'open-vcdiff/src', |
| ], |
| }, |
| 'conditions': [ |
| [ 'OS == "linux" or OS == "android"', { 'include_dirs': [ 'linux' ] } ], |
| [ 'os_bsd==1 or OS=="solaris"', { 'include_dirs': [ 'bsd' ] } ], |
| [ 'OS == "ios"', { 'include_dirs': [ 'ios' ] } ], |
| [ 'OS == "mac"', { |
| 'include_dirs': [ 'mac' ], |
| 'defines': [ 'OPEN_VCDIFF_USE_AUTO_PTR' ], |
| }], |
| [ 'OS == "win"', { 'include_dirs': [ 'win' ] } ], |
| ], |
| # open-vcdiff's logging.h introduces static initializers. This was |
| # reported upstream years ago ( |
| # https://github.com/google/open-vcdiff/issues/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). |
| 'variables': { |
| 'logging_path': 'logging_forward.h', |
| 'conditions': [ |
| # gyp leaves unspecified what the cwd is when running the compiler, |
| # and gyp/linux doesn't have a built-in way for forcing an include. |
| # So hardcode the base directory. If this spreads, provide native |
| # support in gyp, like we have for gyp/mac and gyp/windows. |
| # path. |
| ['"<(GENERATOR)"=="ninja"', { 'logging_dir': '../..' }, |
| { 'logging_dir': '.' } |
| ], |
| ], |
| }, |
| # GCC_PREFIX_HEADER is relative to the current directory, |
| # ForcedIncludeFiles is relative to include_dirs, cflags relative to the |
| # build directory. |
| 'xcode_settings': { 'GCC_PREFIX_HEADER': '<(logging_path)' }, |
| 'msvs_settings': { |
| 'VCCLCompilerTool': { |
| 'ForcedIncludeFiles': [ |
| 'sdch/<(logging_path)', |
| ] |
| } |
| }, |
| 'cflags': [ |
| '-include', '<(logging_dir)/sdch/<(logging_path)', |
| # TODO(mostynb): remove this if open-vcdiff is ever updated for c++11: |
| '-Wno-deprecated-declarations', |
| ], |
| }, |
| ], |
| } |