# Copyright (c) 2015 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.

import("//third_party/protobuf/proto_library.gni")

static_library("drive") {
  sources = [
    "drive_api_util.cc",
    "drive_api_util.h",
    "drive_notification_manager.cc",
    "drive_notification_manager.h",
    "drive_notification_observer.h",
    "drive_pref_names.cc",
    "drive_pref_names.h",
    "drive_uploader.cc",
    "drive_uploader.h",
    "event_logger.cc",
    "event_logger.h",
    "file_change.cc",
    "file_change.h",
    "file_errors.cc",
    "file_errors.h",
    "file_system_core_util.cc",
    "file_system_core_util.h",
    "file_system_metadata.cc",
    "file_system_metadata.h",
    "file_write_watcher.cc",
    "file_write_watcher.h",
    "job_list.cc",
    "job_list.h",
    "job_queue.cc",
    "job_queue.h",
    "job_scheduler.cc",
    "job_scheduler.h",
    "local_file_reader.cc",
    "local_file_reader.h",
    "resource_entry_conversion.cc",
    "resource_entry_conversion.h",
    "resource_metadata_storage.cc",
    "resource_metadata_storage.h",
    "service/drive_api_service.cc",
    "service/drive_api_service.h",
    "service/drive_service_interface.cc",
    "service/drive_service_interface.h",
  ]
  deps = [
    "//base",
    "//base:i18n",
    "//components/invalidation/public",
    "//components/keyed_service/core",
    "//components/prefs",

    # TODO(lukasza): Remove this dependency (see DEPS file for more info).
    "//content/public/browser",
    "//google_apis",
    "//google_apis/drive",
    "//net",
    "//services/device/public/mojom",
    "//third_party/cacheinvalidation",
    "//third_party/leveldatabase",
    "//third_party/re2",
  ]
  public_deps = [
    ":proto",
  ]
}

proto_library("proto") {
  sources = [
    "drive.proto",
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "service/dummy_drive_service.cc",
    "service/dummy_drive_service.h",
    "service/fake_drive_service.cc",
    "service/fake_drive_service.h",
    "service/test_util.cc",
    "service/test_util.h",
  ]
  deps = [
    ":drive",
    ":proto",
    "//base",
    "//components/prefs:test_support",
    "//content/test:test_support",
    "//google_apis:test_support",
    "//google_apis/drive:test_support",
    "//net:net",
  ]
}

if (is_chromeos) {
  source_set("drive_chromeos") {
    sources = [
      "chromeos/about_resource_loader.cc",
      "chromeos/about_resource_loader.h",
      "chromeos/about_resource_root_folder_id_loader.cc",
      "chromeos/about_resource_root_folder_id_loader.h",
      "chromeos/change_list_loader.cc",
      "chromeos/change_list_loader.h",
      "chromeos/change_list_loader_observer.h",
      "chromeos/change_list_processor.cc",
      "chromeos/change_list_processor.h",
      "chromeos/default_corpus_change_list_loader.cc",
      "chromeos/default_corpus_change_list_loader.h",
      "chromeos/directory_loader.cc",
      "chromeos/directory_loader.h",
      "chromeos/drive_change_list_loader.h",
      "chromeos/drive_file_util.cc",
      "chromeos/drive_file_util.h",
      "chromeos/drive_operation_queue.h",
      "chromeos/file_cache.cc",
      "chromeos/file_cache.h",
      "chromeos/file_system.cc",
      "chromeos/file_system.h",
      "chromeos/file_system/copy_operation.cc",
      "chromeos/file_system/copy_operation.h",
      "chromeos/file_system/create_directory_operation.cc",
      "chromeos/file_system/create_directory_operation.h",
      "chromeos/file_system/create_file_operation.cc",
      "chromeos/file_system/create_file_operation.h",
      "chromeos/file_system/download_operation.cc",
      "chromeos/file_system/download_operation.h",
      "chromeos/file_system/get_file_for_saving_operation.cc",
      "chromeos/file_system/get_file_for_saving_operation.h",
      "chromeos/file_system/move_operation.cc",
      "chromeos/file_system/move_operation.h",
      "chromeos/file_system/open_file_operation.cc",
      "chromeos/file_system/open_file_operation.h",
      "chromeos/file_system/operation_delegate.cc",
      "chromeos/file_system/operation_delegate.h",
      "chromeos/file_system/remove_operation.cc",
      "chromeos/file_system/remove_operation.h",
      "chromeos/file_system/search_operation.cc",
      "chromeos/file_system/search_operation.h",
      "chromeos/file_system/set_property_operation.cc",
      "chromeos/file_system/set_property_operation.h",
      "chromeos/file_system/touch_operation.cc",
      "chromeos/file_system/touch_operation.h",
      "chromeos/file_system/truncate_operation.cc",
      "chromeos/file_system/truncate_operation.h",
      "chromeos/file_system_interface.cc",
      "chromeos/file_system_interface.h",
      "chromeos/file_system_observer.h",
      "chromeos/loader_controller.cc",
      "chromeos/loader_controller.h",
      "chromeos/remove_stale_cache_files.cc",
      "chromeos/remove_stale_cache_files.h",
      "chromeos/resource_metadata.cc",
      "chromeos/resource_metadata.h",
      "chromeos/root_folder_id_loader.h",
      "chromeos/search_metadata.cc",
      "chromeos/search_metadata.h",
      "chromeos/start_page_token_loader.cc",
      "chromeos/start_page_token_loader.h",
      "chromeos/sync/entry_revert_performer.cc",
      "chromeos/sync/entry_revert_performer.h",
      "chromeos/sync/entry_update_performer.cc",
      "chromeos/sync/entry_update_performer.h",
      "chromeos/sync/remove_performer.cc",
      "chromeos/sync/remove_performer.h",
      "chromeos/sync_client.cc",
      "chromeos/sync_client.h",
      "chromeos/team_drive.cc",
      "chromeos/team_drive.h",
      "chromeos/team_drive_change_list_loader.cc",
      "chromeos/team_drive_change_list_loader.h",
      "chromeos/team_drive_list_loader.cc",
      "chromeos/team_drive_list_loader.h",
      "chromeos/team_drive_list_observer.h",
    ]
    deps = [
      ":drive",
      "//base",
      "//base:i18n",
      "//components/prefs",
      "//google_apis",
      "//google_apis/drive",
      "//net",
    ]
    public_deps = [
      ":proto",
    ]
  }
  static_library("test_support_chromeos") {
    testonly = true
    sources = [
      "chromeos/drive_test_util.cc",
      "chromeos/drive_test_util.h",
      "chromeos/dummy_file_system.cc",
      "chromeos/dummy_file_system.h",
      "chromeos/fake_file_system.cc",
      "chromeos/fake_file_system.h",
      "chromeos/fake_free_disk_space_getter.cc",
      "chromeos/fake_free_disk_space_getter.h",
    ]
    deps = [
      ":drive",
      ":drive_chromeos",
      ":proto",
      "//base",
      "//components/prefs:test_support",
      "//content/test:test_support",
      "//google_apis:test_support",
      "//google_apis/drive:test_support",
    ]
  }
}
