Home | History | Annotate | Download | only in sdch
      1 # Copyright (c) 2012 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 {
      6   'variables': {
      7     'chromium_code': 1,
      8   },
      9   'targets': [
     10     {
     11       'target_name': 'sdch',
     12       'type': 'static_library',
     13       'dependencies': [
     14         '../base/base.gyp:base',
     15         '../third_party/zlib/zlib.gyp:zlib',
     16       ],
     17       'sources': [
     18         'logging_forward.h',
     19         'open-vcdiff/src/addrcache.cc',
     20         'open-vcdiff/src/blockhash.cc',
     21         'open-vcdiff/src/blockhash.h',
     22         'open-vcdiff/src/checksum.h',
     23         'open-vcdiff/src/codetable.cc',
     24         'open-vcdiff/src/codetable.h',
     25         'open-vcdiff/src/compile_assert.h',
     26         'open-vcdiff/src/decodetable.cc',
     27         'open-vcdiff/src/decodetable.h',
     28         'open-vcdiff/src/encodetable.cc',
     29         'open-vcdiff/src/encodetable.h',
     30         'open-vcdiff/src/google/output_string.h',
     31         'open-vcdiff/src/google/vcdecoder.h',
     32         'open-vcdiff/src/google/vcencoder.h',
     33         'open-vcdiff/src/headerparser.cc',
     34         'open-vcdiff/src/headerparser.h',
     35         'open-vcdiff/src/instruction_map.cc',
     36         'open-vcdiff/src/instruction_map.h',
     37         'open-vcdiff/src/jsonwriter.h',
     38         'open-vcdiff/src/jsonwriter.cc',
     39         'open-vcdiff/src/rolling_hash.h',
     40         'open-vcdiff/src/testing.h',
     41         'open-vcdiff/src/varint_bigendian.cc',
     42         'open-vcdiff/src/varint_bigendian.h',
     43         'open-vcdiff/src/vcdecoder.cc',
     44         'open-vcdiff/src/vcencoder.cc',
     45         'open-vcdiff/src/vcdiff_defs.h',
     46         'open-vcdiff/src/vcdiffengine.cc',
     47         'open-vcdiff/src/vcdiffengine.h',
     48         'open-vcdiff/vsprojects/config.h',
     49         'open-vcdiff/vsprojects/stdint.h',
     50       ],
     51       'include_dirs': [
     52         'open-vcdiff/src',
     53       ],
     54       'direct_dependent_settings': {
     55         'include_dirs': [
     56           'open-vcdiff/src',
     57         ],
     58       },
     59       'conditions': [
     60         [ 'OS == "linux" or OS == "android"', { 'include_dirs': [ 'linux' ] } ],
     61         [ 'os_bsd==1 or OS=="solaris"', { 'include_dirs': [ 'bsd' ] } ],
     62         [ 'OS == "ios"', { 'include_dirs': [ 'ios' ] } ],
     63         [ 'OS == "mac"', { 'include_dirs': [ 'mac' ] } ],
     64         [ 'OS == "win"', { 'include_dirs': [ 'win' ] } ],
     65       ],
     66       # open-vcdiff's logging.h introduces static initializers. This was
     67       # reported upstream years ago (
     68       # https://code.google.com/p/open-vcdiff/issues/detail?id=33 ). Since
     69       # upstream won't fix this, work around it on the chromium side:
     70       # Inject a header that forwards to base/logging.h instead (which doesn't
     71       # introduce static initializers, and which prevents open-vcdiff's
     72       # logging.h from being used).
     73       'variables': {
     74         'logging_path': 'logging_forward.h',
     75         'conditions': [
     76           # gyp leaves unspecified what the cwd is when running the compiler,
     77           # and gyp/linux doesn't have a built-in way for forcing an include.
     78           # So hardcode the base directory. If this spreads, provide native
     79           # support in gyp, like we have for gyp/mac and gyp/windows.
     80           # path.
     81           ['"<(GENERATOR)"=="ninja"', { 'logging_dir': '../..' },
     82                                       { 'logging_dir': '.' }
     83           ],
     84         ],
     85       },
     86       # GCC_PREFIX_HEADER is relative to the current directory,
     87       # ForcedIncludeFiles is relative to include_dirs, cflags relative to the
     88       # build directory.
     89       'xcode_settings': { 'GCC_PREFIX_HEADER': '<(logging_path)' },
     90       'msvs_settings': {
     91         'VCCLCompilerTool': {
     92           'ForcedIncludeFiles': [
     93             'sdch/<(logging_path)',
     94           ]
     95         }
     96       },
     97       'cflags': [
     98         '-include', '<(logging_dir)/sdch/<(logging_path)',
     99         # TODO(mostynb): remove this if open-vcdiff is ever updated for c++11:
    100         '-Wno-deprecated-declarations',
    101       ],
    102     },
    103   ],
    104 }
    105