chromium/chrome/services/printing/public/mojom/BUILD.gn

# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chromeos/ui_mode.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//printing/buildflags/buildflags.gni")

mojom("mojom") {
  sources = [
    "pdf_nup_converter.mojom",
    "pdf_render_settings.mojom",
    "pdf_to_pwg_raster_converter.mojom",
    "printing_service.mojom",
  ]

  public_deps = [
    "//mojo/public/mojom/base",
    "//printing/mojom",
    "//sandbox/policy/mojom",
    "//ui/gfx/geometry/mojom",
    "//url/mojom:url_mojom_gurl",
  ]

  enabled_features = []

  if (is_chromeos) {
    sources += [ "pdf_flattener.mojom" ]
  }

  if (is_win) {
    sources += [ "pdf_to_emf_converter.mojom" ]
  }

  if (enable_print_preview) {
    enabled_features += [ "enable_print_preview" ]
  }

  if (enable_oop_printing) {
    sources += [ "print_backend_service.mojom" ]
    public_deps += [
      "//printing/backend/mojom",
      "//printing/mojom:printing_context",
    ]
    if (is_win) {
      sources += [ "printer_xml_parser.mojom" ]
    }
    if (enable_oop_basic_print_dialog) {
      enabled_features += [ "enable_oop_basic_print_dialog" ]
    }
  }

  cpp_typemaps = [
    {
      types = [
        {
          mojom = "printing.mojom.PdfRenderSettings"
          cpp = "::printing::PdfRenderSettings"
        },
        {
          mojom = "printing.mojom.PdfRenderSettings::Mode"
          cpp = "::printing::PdfRenderSettings::Mode"
        },
      ]
      traits_headers = [ "pdf_render_settings_mojom_traits.h" ]
      traits_sources = [ "pdf_render_settings_mojom_traits.cc" ]
      traits_public_deps = [ "//printing" ]
    },
    {
      types = [
        {
          mojom = "printing.mojom.PwgRasterSettings::TransformType"
          cpp = "::printing::PwgRasterTransformType"
        },
        {
          mojom = "printing.mojom.PwgRasterSettings"
          cpp = "::printing::PwgRasterSettings"
        },
      ]
      traits_headers = [ "pdf_to_pwg_raster_converter_mojom_traits.h" ]
      traits_sources = [ "pdf_to_pwg_raster_converter_mojom_traits.cc" ]
      traits_public_deps = [
        "//printing",
        "//printing/mojom",
      ]
    },
  ]
}