# Copyright 2014 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': [
    {
      # GN version: //components/signin/core/common
      'target_name': 'signin_core_common',
      'type': 'static_library',
      'include_dirs': [
        '..',
      ],
      'sources': [
        'signin/core/common/profile_management_switches.cc',
        'signin/core/common/profile_management_switches.h',
        'signin/core/common/signin_pref_names.cc',
        'signin/core/common/signin_pref_names.h',
        'signin/core/common/signin_switches.cc',
        'signin/core/common/signin_switches.h',
      ],
    },
    {
      # GN version: //components/signin/core/account_id
      'target_name': 'signin_core_account_id',
      'type': 'static_library',
      'include_dirs': [
        '..',
      ],
      'sources': [
        'signin/core/account_id/account_id.cc',
        'signin/core/account_id/account_id.h',
      ],
    },
    {
      # GN version: //components/signin/core/browser
      'target_name': 'signin_core_browser',
      'type': 'static_library',
      'dependencies': [
        '../base/base.gyp:base',
        '../base/base.gyp:base_i18n',
        '../base/base.gyp:base_prefs',
        '../crypto/crypto.gyp:crypto',
        '../google_apis/google_apis.gyp:google_apis',
        '../net/net.gyp:net',
        '../sql/sql.gyp:sql',
        '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
        '../third_party/icu/icu.gyp:icui18n',
        '../third_party/icu/icu.gyp:icuuc',
        'content_settings_core_browser',
        'content_settings_core_common',
        'google_core_browser',
        'invalidation_public',
        'keyed_service_core',
        'metrics',
        'os_crypt',
        'signin_core_common',
        'signin_core_account_id',
        'webdata_common',
      ],
      'include_dirs': [
        '..',
      ],
      'sources': [
        # Note: file list duplicated in GN build.
        'signin/core/browser/about_signin_internals.cc',
        'signin/core/browser/about_signin_internals.h',
        'signin/core/browser/account_fetcher_service.cc',
        'signin/core/browser/account_fetcher_service.h',
        'signin/core/browser/account_info.cc',
        'signin/core/browser/account_info.h',
        'signin/core/browser/account_info_fetcher.cc',
        'signin/core/browser/account_info_fetcher.h',
        'signin/core/browser/account_reconcilor.cc',
        'signin/core/browser/account_reconcilor.h',
        'signin/core/browser/account_tracker_service.cc',
        'signin/core/browser/account_tracker_service.h',
        'signin/core/browser/android/component_jni_registrar.cc',
        'signin/core/browser/android/component_jni_registrar.h',
        'signin/core/browser/child_account_info_fetcher.cc',
        'signin/core/browser/child_account_info_fetcher.h',
        'signin/core/browser/child_account_info_fetcher_android.cc',
        'signin/core/browser/child_account_info_fetcher_android.h',
        'signin/core/browser/child_account_info_fetcher_impl.cc',
        'signin/core/browser/child_account_info_fetcher_impl.h',
        'signin/core/browser/device_activity_fetcher.cc',
        'signin/core/browser/device_activity_fetcher.h',
        'signin/core/browser/gaia_cookie_manager_service.cc',
        'signin/core/browser/gaia_cookie_manager_service.h',
        'signin/core/browser/profile_identity_provider.cc',
        'signin/core/browser/profile_identity_provider.h',
        'signin/core/browser/profile_oauth2_token_service.cc',
        'signin/core/browser/profile_oauth2_token_service.h',
        'signin/core/browser/refresh_token_annotation_request.cc',
        'signin/core/browser/refresh_token_annotation_request.h',
        'signin/core/browser/signin_client.cc',
        'signin/core/browser/signin_client.h',
        'signin/core/browser/signin_cookie_changed_subscription.cc',
        'signin/core/browser/signin_cookie_changed_subscription.h',
        'signin/core/browser/signin_error_controller.cc',
        'signin/core/browser/signin_error_controller.h',
        'signin/core/browser/signin_header_helper.cc',
        'signin/core/browser/signin_header_helper.h',
        'signin/core/browser/signin_internals_util.cc',
        'signin/core/browser/signin_internals_util.h',
        'signin/core/browser/signin_manager.cc',
        'signin/core/browser/signin_manager.h',
        'signin/core/browser/signin_manager_base.cc',
        'signin/core/browser/signin_manager_base.h',
        'signin/core/browser/signin_metrics.cc',
        'signin/core/browser/signin_metrics.h',
        'signin/core/browser/signin_status_metrics_provider.cc',
        'signin/core/browser/signin_status_metrics_provider.h',
        'signin/core/browser/signin_status_metrics_provider_base.cc',
        'signin/core/browser/signin_status_metrics_provider_base.h',
        'signin/core/browser/signin_status_metrics_provider_delegate.cc',
        'signin/core/browser/signin_status_metrics_provider_delegate.h',
        'signin/core/browser/signin_tracker.cc',
        'signin/core/browser/signin_tracker.h',
        'signin/core/browser/webdata/token_service_table.cc',
        'signin/core/browser/webdata/token_service_table.h',
        'signin/core/browser/webdata/token_web_data.cc',
        'signin/core/browser/webdata/token_web_data.h',
      ],
      'conditions': [
        ['OS=="android"', {
          'dependencies': [
            'signin_core_browser_jni_headers',
          ],
          'sources!': [
            'signin/core/browser/child_account_info_fetcher_impl.cc',
            'signin/core/browser/child_account_info_fetcher_impl.h',
          ],
        }],
        ['chromeos==1', {
          'sources!': [
            'signin/core/browser/signin_manager.cc',
            'signin/core/browser/signin_status_metrics_provider.cc',
            'signin/core/browser/signin_status_metrics_provider_delegate.cc',
          ],
        }],
      ],
      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
      'msvs_disabled_warnings': [4267, ],
    },
    {
      # GN version: //components/signin/core/browser:test_support
      'target_name': 'signin_core_browser_test_support',
      'type': 'static_library',
      'dependencies': [
        'signin_core_browser',
        '../testing/gtest.gyp:gtest',
      ],
      'include_dirs': [
        '..',
      ],
      'sources': [
        # Note: file list duplicated in GN build.
        'signin/core/browser/fake_account_fetcher_service.cc',
        'signin/core/browser/fake_account_fetcher_service.h',
        'signin/core/browser/fake_auth_status_provider.cc',
        'signin/core/browser/fake_auth_status_provider.h',
        'signin/core/browser/fake_profile_oauth2_token_service.cc',
        'signin/core/browser/fake_profile_oauth2_token_service.h',
        'signin/core/browser/fake_signin_manager.cc',
        'signin/core/browser/fake_signin_manager.h',
        'signin/core/browser/test_signin_client.cc',
        'signin/core/browser/test_signin_client.h',
      ],
    },
  ],
  'conditions': [
    ['OS == "android"', {
      'targets': [
        {
          # GN version: //components/signin/core/browser/android:java
          'target_name': 'signin_core_browser_java',
          'type': 'none',
          'dependencies': [
            '../base/base.gyp:base',
            '../sync/sync.gyp:sync_java',
          ],
          'variables': {
            'java_in_dir': 'signin/core/browser/android/java',
          },
          'includes': [ '../build/java.gypi' ],
        },
        {
          # GN version: //components/signin/core/browser/android:jni_headers
          'target_name': 'signin_core_browser_jni_headers',
          'type': 'none',
          'sources': [
            'signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java',
          ],
          'variables': {
            'jni_gen_package': 'components/signin',
          },
          'includes': [ '../build/jni_generator.gypi' ],
        },
      ],
    }],
    ['OS == "ios"', {
      # GN version: //components/signin/core/browser:ios
      'targets': [
        {
          'target_name': 'signin_ios_browser',
          'type': 'static_library',
          'dependencies': [
            '../ios/web/ios_web.gyp:ios_web',
            'signin_core_browser',
          ],
          'include_dirs': [
            '..',
          ],
          'sources': [
            # Note: file list duplicated in GN build.
            'signin/ios/browser/account_consistency_service.h',
            'signin/ios/browser/account_consistency_service.mm',
            'signin/ios/browser/manage_accounts_delegate.h',
            'signin/ios/browser/merge_session_observer_bridge.h',
            'signin/ios/browser/merge_session_observer_bridge.mm',
            'signin/ios/browser/oauth2_token_service_observer_bridge.h',
            'signin/ios/browser/oauth2_token_service_observer_bridge.mm',
            'signin/ios/browser/profile_oauth2_token_service_ios_delegate.h',
            'signin/ios/browser/profile_oauth2_token_service_ios_delegate.mm',
            'signin/ios/browser/profile_oauth2_token_service_ios_provider.h',
          ],
        },
        {
          'target_name': 'signin_ios_browser_test_support',
          'type': 'static_library',
          'dependencies': [
            '../base/base.gyp:base',
            '../google_apis/google_apis.gyp:google_apis_test_support',
            'signin_ios_browser',
          ],
          'include_dirs': [
            '..',
          ],
          'sources': [
            # Note: file list duplicated in GN build.
            'signin/ios/browser/fake_profile_oauth2_token_service_ios_delegate.h',
            'signin/ios/browser/fake_profile_oauth2_token_service_ios_delegate.mm',
            'signin/ios/browser/fake_profile_oauth2_token_service_ios_provider.h',
            'signin/ios/browser/fake_profile_oauth2_token_service_ios_provider.mm',
          ],
        },
      ],
    }],
  ],
}