# 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")

source_set("drive") {
  sources = [
    "change_list_loader.cc",
    "change_list_loader.h",
    "change_list_loader_observer.h",
    "change_list_processor.cc",
    "change_list_processor.h",
    "directory_loader.cc",
    "directory_loader.h",
    "drive_api_util.cc",
    "drive_api_util.h",
    "drive_app_registry.cc",
    "drive_app_registry.h",
    "drive_app_registry_observer.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_cache.cc",
    "file_cache.h",
    "file_change.cc",
    "file_change.h",
    "file_errors.cc",
    "file_errors.h",
    "file_system.cc",
    "file_system.h",
    "file_system/copy_operation.cc",
    "file_system/copy_operation.h",
    "file_system/create_directory_operation.cc",
    "file_system/create_directory_operation.h",
    "file_system/create_file_operation.cc",
    "file_system/create_file_operation.h",
    "file_system/download_operation.cc",
    "file_system/download_operation.h",
    "file_system/get_file_for_saving_operation.cc",
    "file_system/get_file_for_saving_operation.h",
    "file_system/move_operation.cc",
    "file_system/move_operation.h",
    "file_system/open_file_operation.cc",
    "file_system/open_file_operation.h",
    "file_system/operation_delegate.cc",
    "file_system/operation_delegate.h",
    "file_system/remove_operation.cc",
    "file_system/remove_operation.h",
    "file_system/search_operation.cc",
    "file_system/search_operation.h",
    "file_system/set_property_operation.cc",
    "file_system/set_property_operation.h",
    "file_system/touch_operation.cc",
    "file_system/touch_operation.h",
    "file_system/truncate_operation.cc",
    "file_system/truncate_operation.h",
    "file_system_core_util.cc",
    "file_system_core_util.h",
    "file_system_interface.cc",
    "file_system_interface.h",
    "file_system_metadata.cc",
    "file_system_metadata.h",
    "file_system_observer.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",
    "remove_stale_cache_files.cc",
    "remove_stale_cache_files.h",
    "resource_entry_conversion.cc",
    "resource_entry_conversion.h",
    "resource_metadata.cc",
    "resource_metadata.h",
    "resource_metadata_storage.cc",
    "resource_metadata_storage.h",
    "search_metadata.cc",
    "search_metadata.h",
    "service/drive_api_service.cc",
    "service/drive_api_service.h",
    "service/drive_service_interface.cc",
    "service/drive_service_interface.h",
    "sync/entry_revert_performer.cc",
    "sync/entry_revert_performer.h",
    "sync/entry_update_performer.cc",
    "sync/entry_update_performer.h",
    "sync/remove_performer.cc",
    "sync/remove_performer.h",
    "sync_client.cc",
    "sync_client.h",
  ]
  deps = [
    "//base",
    "//base:i18n",
    "//base:prefs",
    "//components/invalidation/public",
    "//components/keyed_service/core",

    # TODO(lukasza): Remove this dependency (see DEPS file for more info).
    "//content/public/browser",

    "//google_apis:google_apis",
    "//net:net",
    "//third_party/cacheinvalidation",
    "//third_party/leveldatabase",
    "//third_party/re2",
  ]
  public_deps = [
    ":proto",
  ]
}

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

source_set("test_support") {
  testonly = true
  sources = [
    "drive_test_util.cc",
    "drive_test_util.h",
    "dummy_file_system.cc",
    "dummy_file_system.h",
    "fake_file_system.cc",
    "fake_file_system.h",
    "fake_free_disk_space_getter.cc",
    "fake_free_disk_space_getter.h",
    "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",
    "//base:prefs_test_support",
    "//content/test:test_support",
    "//google_apis:test_support",
    "//net:net",
  ]
}
