# Copyright 2013 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.

{
  'targets': [
    {
      'target_name': 'headers',
      'type': 'static_library',
      'sources': [
        'c/include/brotli/decode.h',
        'c/include/brotli/encode.h',
        'c/include/brotli/port.h',
        'c/include/brotli/types.h',
      ],
      'toolsets': ['host', 'target'],
    },
    {
      'target_name': 'common',
      'type': 'static_library',
      'include_dirs': [
        'c/include',
      ],
      'sources': [
        'c/common/constants.h',
        'c/common/dictionary.c',
        'c/common/dictionary.h',
        'c/common/platform.h',
        'c/common/version.h',
      ],
      'dependencies': [
        'headers',
      ],
      'toolsets': ['host', 'target'],
    },
    {
      'target_name': 'common_no_dictionary_data',
      'type': 'static_library',
      'include_dirs': [
        'c/include',
      ],
      'sources': [
        'c/common/constants.h',
        'c/common/dictionary.c',
        'c/common/dictionary.h',
        'c/common/platform.h',
        'c/common/version.h',
      ],
      'dependencies': [
        'headers',
      ],
      'defines': [
        'BROTLI_EXTERNAL_DICTIONARY_DATA',
      ],
      'toolsets': ['host', 'target'],
    },
    {
      'target_name': 'dec',
      'type': 'static_library',
      'include_dirs': [
        'c/include',
      ],
      'sources': [
        'c/dec/bit_reader.c',
        'c/dec/bit_reader.h',
        'c/dec/context.h',
        'c/dec/decode.c',
        'c/dec/huffman.c',
        'c/dec/huffman.h',
        'c/dec/prefix.h',
        'c/dec/state.c',
        'c/dec/state.h',
        'c/dec/transform.h',
      ],
      'dependencies': [
        'headers',
        'common',
      ],
      'conditions': [
        ['os_posix==1 and (target_arch=="arm" or target_arch=="armv7" or target_arch=="arm64")', {
          'cflags!': ['-Os'],
          'cflags': ['-O2'],
        }],
      ],
      'toolsets': ['host', 'target'],
    },
    {
      'target_name': 'dec_no_dictionary_data',
      'type': 'static_library',
      'include_dirs': [
        'c/include',
      ],
      'sources': [
        'c/dec/bit_reader.c',
        'c/dec/bit_reader.h',
        'c/dec/context.h',
        'c/dec/decode.c',
        'c/dec/huffman.c',
        'c/dec/huffman.h',
        'c/dec/prefix.h',
        'c/dec/state.c',
        'c/dec/state.h',
        'c/dec/transform.h',
      ],
      'dependencies': [
        'headers',
        'common_no_dictionary_data',
      ],
      'toolsets': ['host', 'target'],
    },
    {
      'target_name': 'bro',
      'type': 'executable',
      'dependencies': [
        'headers',
        'common',
        'dec',
      ],
      'include_dirs': [
        'c/include',
      ],
      'sources': [
        'c/enc/backward_references.c',
        'c/enc/backward_references.h',
        'c/enc/backward_references_hq.c',
        'c/enc/backward_references_hq.h',
        'c/enc/backward_references_inc.h',
        'c/enc/bit_cost.c',
        'c/enc/bit_cost.h',
        'c/enc/bit_cost_inc.h',
        'c/enc/block_encoder_inc.h',
        'c/enc/block_splitter.c',
        'c/enc/block_splitter.h',
        'c/enc/block_splitter_inc.h',
        'c/enc/brotli_bit_stream.c',
        'c/enc/brotli_bit_stream.h',
        'c/enc/cluster.c',
        'c/enc/cluster.h',
        'c/enc/cluster_inc.h',
        'c/enc/command.h',
        'c/enc/compress_fragment.c',
        'c/enc/compress_fragment.h',
        'c/enc/compress_fragment_two_pass.c',
        'c/enc/compress_fragment_two_pass.h',
        'c/enc/context.h',
        'c/enc/dictionary_hash.c',
        'c/enc/dictionary_hash.h',
        'c/enc/encode.c',
        'c/enc/entropy_encode.c',
        'c/enc/entropy_encode.h',
        'c/enc/entropy_encode_static.h',
        'c/enc/fast_log.h',
        'c/enc/find_match_length.h',
        'c/enc/hash_forgetful_chain_inc.h',
        'c/enc/hash.h',
        'c/enc/hash_longest_match64_inc.h',
        'c/enc/hash_longest_match_inc.h',
        'c/enc/hash_longest_match_quickly_inc.h',
        'c/enc/hash_to_binary_tree_inc.h',
        'c/enc/histogram.c',
        'c/enc/histogram.h',
        'c/enc/histogram_inc.h',
        'c/enc/literal_cost.c',
        'c/enc/literal_cost.h',
        'c/enc/memory.c',
        'c/enc/memory.h',
        'c/enc/metablock.c',
        'c/enc/metablock.h',
        'c/enc/metablock_inc.h',
        'c/enc/params.h',
        'c/enc/prefix.h',
        'c/enc/quality.h',
        'c/enc/ringbuffer.h',
        'c/enc/static_dict.c',
        'c/enc/static_dict.h',
        'c/enc/static_dict_lut.h',
        'c/enc/utf8_util.c',
        'c/enc/utf8_util.h',
        'c/enc/write_bits.h',
        'c/tools/brotli.c',
      ],
      'toolsets': ['host'],
      'conditions': [
        ['OS=="win" and MSVS_VERSION == "2015"', {
          # Disabling "result of 32-bit shift implicitly converted to 64 bits",
          # caused by code like: foo |= (1 << i);   // warning 4334
          'msvs_disabled_warnings': [ 4334, ],
        }],
      ],
    }
  ],
}
