123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- # Copyright 2021 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/chromeos/ui_mode.gni")
- import("//printing/buildflags/buildflags.gni")
- if (use_cups && is_chromeos) {
- import("//printing/backend/tools/code_generator.gni")
- ipp_handler_map_path = "$target_gen_dir/backend/ipp_handler_map.cc"
- ipp_code_generate("ipp_handlers_generate") {
- outputs = [ ipp_handler_map_path ]
- args = [ "--ipp-handler-map=" +
- rebase_path(ipp_handler_map_path, root_build_dir) ]
- }
- }
- component("backend") {
- # Avoid producing a very generic "backend.dll" or "libbackend.so".
- output_name = "printing_backend"
- sources = [
- "print_backend.cc",
- "print_backend.h",
- "print_backend_consts.cc",
- "print_backend_consts.h",
- "print_backend_dummy.cc",
- "print_backend_utils.cc",
- "print_backend_utils.h",
- "printing_restrictions.cc",
- "printing_restrictions.h",
- ]
- public_configs = []
- cflags = []
- defines = [ "IS_PRINT_BACKEND_IMPL" ]
- public_deps = [ "//printing/buildflags" ]
- deps = [
- "//base",
- "//build:chromeos_buildflags",
- "//printing:printing_base",
- "//printing/mojom",
- "//ui/gfx/geometry",
- "//url",
- ]
- if (is_chromeos) {
- # PRINT_BACKEND_AVAILABLE disables the default dummy implementation
- # print backend and enables a custom implementation instead.
- defines += [ "PRINT_BACKEND_AVAILABLE" ]
- sources += [ "print_backend_chromeos.cc" ]
- }
- 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 += [
- "print_backend_win.cc",
- "printing_info_win.cc",
- "printing_info_win.h",
- "win_helper.cc",
- "win_helper.h",
- ]
- deps += [ "//services/data_decoder/public/cpp:safe_xml_parser" ]
- }
- if (use_cups) {
- public_configs += [ "//printing:cups" ]
- if (is_linux || is_chromeos) {
- # CUPS 1.6 deprecated the PPD APIs, but we will stay with this API
- # for now as the suitability of the replacement is unclear.
- # More info: crbug.com/226176
- cflags += [ "-Wno-deprecated-declarations" ]
- }
- if (is_mac) {
- # CUPS 1.6 deprecated the PPD APIs. We need to evaluate the
- # effect of migrating Mac. More info: crbug.com/226176
- 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 (use_cups_ipp) {
- sources += [
- "cups_connection.cc",
- "cups_connection.h",
- "cups_deleters.cc",
- "cups_deleters.h",
- "cups_ipp_constants.cc",
- "cups_ipp_constants.h",
- "cups_ipp_helper.cc",
- "cups_ipp_helper.h",
- "cups_ipp_utils.cc",
- "cups_ipp_utils.h",
- "cups_jobs.cc",
- "cups_jobs.h",
- "cups_printer.cc",
- "cups_printer.h",
- "print_backend_cups_ipp.cc",
- "print_backend_cups_ipp.h",
- ]
- }
- if (is_chromeos) {
- deps += [ ":ipp_handlers_generate" ]
- sources += [
- "cups_connection_pool.cc",
- "cups_connection_pool.h",
- "ipp_handler_map.h",
- "ipp_handlers.cc",
- "ipp_handlers.h",
- ipp_handler_map_path,
- ]
- }
- if (!is_chromeos_ash) {
- # TODO(crbug.com/1062136): Remove the original CUPS backend for macOS
- # when Cloud Print support is terminated. Follow up after Jan 1, 2021.
- sources += [
- "cups_helper.cc",
- "cups_helper.h",
- "print_backend_cups.cc",
- "print_backend_cups.h",
- ]
- # We still build the utils for fuzzing if not already built.
- if (use_fuzzing_engine && !use_cups_ipp) {
- sources += [
- "cups_ipp_constants.cc",
- "cups_ipp_constants.h",
- "cups_ipp_helper.cc",
- "cups_ipp_helper.h",
- ]
- }
- }
- }
- }
- source_set("test_support") {
- testonly = true
- sources = [
- "test_print_backend.cc",
- "test_print_backend.h",
- ]
- deps = [
- ":backend",
- "//base",
- "//printing/mojom",
- ]
- }
|