# Copyright (c) 2011 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': {
    'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
  },
  'target_defaults': {
    'include_dirs': [
      '../..',  # add it first, so src/base headers are used instead of the ones
                # brought with the library as cc files would be taken from the
                # main chrome tree as well.
      'cpp/src',
      '<(protoc_out_dir)',
      '../protobuf/src',
      '../icu/public/common',
      '../icu/public/i18n',
    ],
    'defines': [
      'U_USING_ICU_NAMESPACE=0',
    ],
    'conditions': [
      ['OS!="win" or component=="static_library"', {
        'defines': [
          'U_STATIC_IMPLEMENTATION',
        ],
      }],
    ],
  },
  'targets': [{
    'target_name': 'libphonenumber',
    'type': 'static_library',
    'dependencies': [
      '../icu/icu.gyp:icui18n',
      '../icu/icu.gyp:icuuc',
      '../protobuf/protobuf.gyp:protobuf_lite',
      '../../base/base.gyp:base',
      '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
      'phonenumber_proto',
    ],
    'sources': [
      'chrome/regexp_adapter_icuregexp.cc',
      'cpp/src/default_logger.cc',
      'cpp/src/logger_adapter.cc',
      'cpp/src/metadata.cc',
      'cpp/src/phonenumber.cc',
      'cpp/src/phonenumberutil.cc',
      'cpp/src/stringutil.cc',
      'cpp/src/utf/rune.c',
      'cpp/src/utf/unicodetext.cc',
      'cpp/src/utf/unilib.cc',
      # Generated by phonenumber_proto.
      '<(protoc_out_dir)/phonemetadata.pb.cc',
      '<(protoc_out_dir)/phonenumber.pb.cc',
    ],
    'conditions': [
      ['OS=="win"', {
        'action': [
          '/wo4309',
        ],
      }],
    ],
  },
  {
    # Protobuf compiler / generate rule for the phones
    'target_name': 'phonenumber_proto',
    'type': 'none',
    'sources': [
      'resources/phonemetadata.proto',
      'resources/phonenumber.proto',
    ],
    'rules': [{
      'rule_name': 'genproto',
      'extension': 'proto',
      'inputs': [
        '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
      ],
      'variables': {
        # The protoc compiler requires a proto_path argument with the
        # directory containing the .proto file.
        # There's no generator variable that corresponds to this, so fake it.
        'rule_input_relpath': 'resources',
      },
      'outputs': [
        '<(protoc_out_dir)/<(RULE_INPUT_ROOT).pb.h',
        '<(protoc_out_dir)/<(RULE_INPUT_ROOT).pb.cc',
      ],
      'action': [
        '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
        '--proto_path=<(rule_input_relpath)',
        '<(rule_input_relpath)/<(RULE_INPUT_ROOT)<(RULE_INPUT_EXT)',
        '--cpp_out=<(protoc_out_dir)',
      ],
      'message': 'Generating C++ code from <(RULE_INPUT_PATH)',
    }],
    'dependencies': [
      '../protobuf/protobuf.gyp:protobuf_lite',
      '../protobuf/protobuf.gyp:protoc#host',
    ],
    'direct_dependent_settings': {
      'include_dirs': [
        '<(protoc_out_dir)',
      ]
    },
    'export_dependent_settings': [
      '../../third_party/protobuf/protobuf.gyp:protobuf_lite',
    ],
  },
  {
    'target_name': 'libphonenumber_unittests',
    'type': 'executable',
    'sources': [
      '../../base/test/run_all_unittests.cc',
      'cpp/src/phonenumberutil_test.cc',
      'cpp/src/regexp_adapter_unittest.cc',
      'cpp/src/stringutil_test.cc',
      'cpp/src/test_metadata.cc',
    ],
    'dependencies': [
      '../icu/icu.gyp:icui18n',
      '../icu/icu.gyp:icuuc',
      '../protobuf/protobuf.gyp:protobuf_lite',
      '../../base/base.gyp:base',
      '../../base/base.gyp:test_support_base',
      '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
      '../../testing/gmock.gyp:gmock',
      '../../testing/gtest.gyp:gtest',
      'libphonenumber',
    ],
    'conditions': [
      ['OS=="win"', {
        'action': [
          '/wo4309',
        ],
      }],
    ],
  }]
}