chromium/printing/backend/mojom/BUILD.gn

# Copyright 2020 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 = [ "print_backend.mojom" ]

  deps = [
    "//printing/mojom",
    "//ui/gfx/geometry/mojom",
  ]

  cpp_typemaps = [
    {
      types = [
        {
          mojom = "printing.mojom.PrinterBasicInfo"
          cpp = "::printing::PrinterBasicInfo"
        },
        {
          mojom = "printing.mojom.Paper"
          cpp = "::printing::PrinterSemanticCapsAndDefaults::Paper"
        },
        {
          mojom = "printing.mojom.PrinterSemanticCapsAndDefaults"
          cpp = "::printing::PrinterSemanticCapsAndDefaults"
        },
      ]
      traits_sources = [ "print_backend_mojom_traits.cc" ]
      traits_headers = [ "print_backend_mojom_traits.h" ]
      traits_deps = [
        "//base",
        "//build:chromeos_buildflags",
        "//printing/backend",
      ]
    },
  ]

  if (is_chromeos) {
    cpp_typemaps += [
      {
        types = [
          {
            mojom = "printing.mojom.AdvancedCapability"
            cpp = "::printing::AdvancedCapability"
          },
          {
            mojom = "printing.mojom.AdvancedCapabilityValue"
            cpp = "::printing::AdvancedCapabilityValue"
          },
        ]
      },
    ]
  }
  if (is_win) {
    cpp_typemaps += [
      {
        types = [
          {
            mojom = "printing.mojom.PageOutputQualityAttribute"
            cpp = "::printing::PageOutputQualityAttribute"
          },
          {
            mojom = "printing.mojom.PageOutputQuality"
            cpp = "::printing::PageOutputQuality"
          },
        ]
      },
    ]
  }
}