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

import("//build/config/features.gni")
import("//printing/features/features.gni")

static_library("service") {
  sources = [
    "cloud_print/cdd_conversion_win.cc",
    "cloud_print/cdd_conversion_win.h",
    "cloud_print/cloud_print_auth.cc",
    "cloud_print/cloud_print_auth.h",
    "cloud_print/cloud_print_connector.cc",
    "cloud_print/cloud_print_connector.h",
    "cloud_print/cloud_print_message_handler.cc",
    "cloud_print/cloud_print_message_handler.h",
    "cloud_print/cloud_print_proxy.cc",
    "cloud_print/cloud_print_proxy.h",
    "cloud_print/cloud_print_proxy_backend.cc",
    "cloud_print/cloud_print_proxy_backend.h",
    "cloud_print/cloud_print_service_helpers.cc",
    "cloud_print/cloud_print_service_helpers.h",
    "cloud_print/cloud_print_token_store.cc",
    "cloud_print/cloud_print_token_store.h",
    "cloud_print/cloud_print_url_fetcher.cc",
    "cloud_print/cloud_print_url_fetcher.h",
    "cloud_print/cloud_print_wipeout.cc",
    "cloud_print/cloud_print_wipeout.h",
    "cloud_print/connector_settings.cc",
    "cloud_print/connector_settings.h",
    "cloud_print/job_status_updater.cc",
    "cloud_print/job_status_updater.h",
    "cloud_print/print_system.cc",
    "cloud_print/print_system.h",
    "cloud_print/print_system_win.cc",
    "cloud_print/printer_job_handler.cc",
    "cloud_print/printer_job_handler.h",
    "cloud_print/printer_job_queue_handler.cc",
    "cloud_print/printer_job_queue_handler.h",
    "net/service_url_request_context_getter.cc",
    "net/service_url_request_context_getter.h",
    "service_ipc_server.cc",
    "service_ipc_server.h",
    "service_main.cc",
    "service_process.cc",
    "service_process.h",
    "service_process_prefs.cc",
    "service_process_prefs.h",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]

  deps = [
    "//base",
    "//chrome:strings",
    "//chrome/common",
    "//components/cloud_devices/common",
    "//components/data_use_measurement/core",
    "//components/network_session_configurator/browser",
    "//google_apis",
    "//jingle:notifier",
    "//mojo/edk/system",
    "//net",
    "//printing",
    "//skia",
    "//third_party/webrtc_overrides",
  ]

  public_deps = [
    "//chrome/common:service_process_mojom",
  ]

  if (use_cups && !is_chromeos) {
    sources += [ "cloud_print/print_system_cups.cc" ]
    configs += [ "//printing:cups" ]
  } else if (is_win) {
    sources += [
      "service_utility_process_host.cc",
      "service_utility_process_host.h",
    ]
  } else {
    sources += [ "cloud_print/print_system_dummy.cc" ]
  }
}
