# 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("//build/config/sysroot.gni")
import("//build/config/ui.gni")
import("//pdf/features.gni")
import("//printing/features/features.gni")
import("//testing/test.gni")
if (is_mac) {
  import("//build/config/mac/mac_sdk.gni")
}
if (is_android) {
  import("//build/config/android/rules.gni")
}

if ((enable_basic_printing && is_win) || enable_print_preview) {
  # Windows basic printing or print preview requires pdf enabled.
  assert(enable_pdf,
         "Windows basic printing or print preview needs pdf: " +
             "set enable_pdf=true.")
}

component("printing") {
  sources = [
    "backend/print_backend.cc",
    "backend/print_backend.h",
    "backend/print_backend_consts.cc",
    "backend/print_backend_consts.h",
    "backend/print_backend_dummy.cc",
    "backend/printing_info_win.cc",
    "backend/printing_info_win.h",
    "emf_win.cc",
    "emf_win.h",
    "image.cc",
    "image.h",
    "image_android.cc",
    "image_linux.cc",
    "image_mac.cc",
    "image_win.cc",
    "metafile.cc",
    "metafile.h",
    "metafile_skia_wrapper.cc",
    "metafile_skia_wrapper.h",
    "page_number.cc",
    "page_number.h",
    "page_range.cc",
    "page_range.h",
    "page_setup.cc",
    "page_setup.h",
    "page_size_margins.h",
    "pdf_metafile_cg_mac.cc",
    "pdf_metafile_cg_mac.h",
    "pdf_metafile_skia.cc",
    "pdf_metafile_skia.h",
    "print_dialog_gtk_interface.h",
    "print_job_constants.cc",
    "print_job_constants.h",
    "print_settings.cc",
    "print_settings.h",
    "print_settings_conversion.cc",
    "print_settings_conversion.h",
    "print_settings_initializer_mac.cc",
    "print_settings_initializer_mac.h",
    "print_settings_initializer_win.cc",
    "print_settings_initializer_win.h",
    "printed_document.cc",
    "printed_document.h",
    "printed_document_mac.cc",
    "printed_document_win.cc",
    "printed_page.cc",
    "printed_page.h",
    "printed_pages_source.h",
    "printing_context.cc",
    "printing_context.h",
    "printing_utils.cc",
    "printing_utils.h",
    "units.cc",
    "units.h",
  ]

  cflags = []
  defines = [ "PRINTING_IMPLEMENTATION" ]

  public_deps = [
    "//printing/features",
  ]
  deps = [
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//cc/paint",
    "//skia",
    "//third_party/icu",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//url",
  ]

  if (use_aura) {
    deps += [ "//ui/aura" ]
  }

  if (is_mac) {
    # Mac-Aura does not support printing.
    if (use_aura) {
      sources -= [ "printed_document_mac.cc" ]
    } else {
      sources += [
        "printing_context_mac.h",
        "printing_context_mac.mm",
      ]
    }
    libs = [
      "AppKit.framework",
      "ApplicationServices.framework",
      "CoreFoundation.framework",
      "CoreGraphics.framework",
    ]
  }

  if (is_win) {
    # PRINT_BACKEND_AVAILABLE disables the default dummy implementation of the
    # print backend and enables a custom implementation instead.
    defines += [ "PRINT_BACKEND_AVAILABLE" ]
    sources += [
      "backend/print_backend_win.cc",
      "backend/win_helper.cc",
      "backend/win_helper.h",
      "printing_context_system_dialog_win.cc",
      "printing_context_system_dialog_win.h",
      "printing_context_win.cc",
      "printing_context_win.h",
    ]
  }

  if (use_cups) {
    configs += [ ":cups" ]

    if (is_linux) {
      # rebase_path does not accept an empty string
      if (use_sysroot) {
        cups_sysroot = rebase_path(sysroot)
      } else {
        cups_sysroot = ""
      }
      cups_version = exec_script("cups_config_helper.py",
                                 [
                                   "--api-version",
                                   cups_sysroot,
                                 ],
                                 "trim string")

      if (cups_version == "1.6" || cups_version == "1.7") {
        cflags += [
          # CUPS 1.6 deprecated the PPD APIs, but we will stay with this
          # API for now as supported Linux and Mac OS'es are still using
          # older versions of CUPS. More info: crbug.com/226176
          "-Wno-deprecated-declarations",
          # CUPS 1.7 deprecates httpConnectEncrypt(), see the mac section
          # below.
        ]
      }
    }

    if (is_mac) {
      # The 10.9 SDK includes cups 1.7, which deprecates
      # httpConnectEncrypt() in favor of httpConnect2(). hhttpConnect2()
      # is new in 1.7, so it doesn't exist on OS X 10.6-10.8 and we
      # can't use it until 10.9 is our minimum system version.
      # (cups_version isn't reliable on OS X, so key the check off of
      # mac_sdk).
      # With a 10.8 deployment target, several other APIs are deprecated.
      # We're still on CUPS 1.4 until Linux no longer needs to support it, see
      # comment above.
      cflags += [ "-Wno-deprecated-declarations" ]
    }

    # PRINT_BACKEND_AVAILABLE disables the default dummy implementation
    # of the print backend and enables a custom implementation instead.
    defines += [ "PRINT_BACKEND_AVAILABLE" ]

    if (is_chromeos) {
      sources += [
        "backend/cups_connection.cc",
        "backend/cups_connection.h",
        "backend/cups_deleters.cc",
        "backend/cups_deleters.h",
        "backend/cups_ipp_util.cc",
        "backend/cups_ipp_util.h",
        "backend/cups_printer.cc",
        "backend/cups_printer.h",
        "backend/print_backend_cups_ipp.cc",
        "backend/print_backend_cups_ipp.h",
        "printing_context_chromeos.cc",
        "printing_context_chromeos.h",
      ]
    } else {
      sources += [
        "backend/cups_helper.cc",
        "backend/cups_helper.h",
        "backend/print_backend_cups.cc",
        "backend/print_backend_cups.h",
      ]
    }
  }

  if (is_chromeos) {
    defines += [ "PRINT_BACKEND_AVAILABLE" ]

    sources += [
      "backend/print_backend_chromeos.cc",
      "printed_document_chromeos.cc",
      "printing_context_no_system_dialog.cc",
      "printing_context_no_system_dialog.h",
    ]
  } else if (is_linux) {  # Non-ChromeOS Linux.
    sources += [
      "printed_document_linux.cc",
      "printing_context_linux.cc",
      "printing_context_linux.h",
    ]
  }

  if (is_android) {
    sources += [
      "printing_context_android.cc",
      "printing_context_android.h",
    ]

    deps += [ ":printing_jni_headers" ]
  } else {
    sources += [
      "pdf_transform.cc",
      "pdf_transform.h",
    ]
  }
}

static_library("test_support") {
  testonly = true
  sources = [
    "backend/test_print_backend.cc",
    "backend/test_print_backend.h",
  ]
  public_deps = [
    "//printing",
  ]
  deps = [
    "//base",
  ]
}

test("printing_unittests") {
  sources = [
    "emf_win_unittest.cc",
    "page_number_unittest.cc",
    "page_range_unittest.cc",
    "page_setup_unittest.cc",
    "pdf_metafile_cg_mac_unittest.cc",
    "printed_page_unittest.cc",
    "printing_context_win_unittest.cc",
    "printing_test.h",
    "printing_utils_unittest.cc",
    "units_unittest.cc",
  ]

  deps = [
    ":printing",
    "//base/test:run_all_unittests",
    "//base/test:test_support",
    "//testing/gtest",
    "//ui/base",
    "//ui/gfx",
    "//ui/gfx:test_support",
    "//ui/gfx/geometry",
  ]

  if (!is_android) {
    sources += [ "pdf_transform_unittest.cc" ]
  }

  if (use_cups) {
    configs += [ ":cups" ]

    if (is_chromeos) {
      sources += [ "backend/cups_ipp_util_unittest.cc" ]
    } else {
      sources += [ "backend/cups_helper_unittest.cc" ]
    }
  }
}

if (use_cups) {
  config("cups") {
    defines = [ "USE_CUPS" ]

    if (is_mac) {
      libs = [ "cups" ]
      lib_dirs = [ "$mac_sdk_path/usr/lib" ]
    } else {
      # rebase_path does not accept an empty string
      if (use_sysroot) {
        cups_sysroot = rebase_path(sysroot)
      } else {
        cups_sysroot = ""
      }
      libs = exec_script("cups_config_helper.py",
                         [
                           "--libs-for-gn",
                           cups_sysroot,
                         ],
                         "value")
    }
  }
}

if (is_android) {
  generate_jni("printing_jni_headers") {
    sources = [
      "android/java/src/org/chromium/printing/PrintingContext.java",
    ]
    jni_package = "printing"
  }

  android_library("printing_java") {
    deps = [
      "//base:base_java",
    ]
    java_files = [
      "android/java/src/org/chromium/printing/PrintDocumentAdapterWrapper.java",
      "android/java/src/org/chromium/printing/PrintManagerDelegate.java",
      "android/java/src/org/chromium/printing/PrintManagerDelegateImpl.java",
      "android/java/src/org/chromium/printing/Printable.java",
      "android/java/src/org/chromium/printing/PrintingContext.java",
      "android/java/src/org/chromium/printing/PrintingContextInterface.java",
      "android/java/src/org/chromium/printing/PrintingController.java",
      "android/java/src/org/chromium/printing/PrintingControllerImpl.java",
    ]
  }
}
