123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439 |
- # 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/chromeos/ui_mode.gni")
- import("//build/config/features.gni")
- import("//build/config/sysroot.gni")
- import("//build/config/ui.gni")
- import("//pdf/features.gni")
- import("//printing/buildflags/buildflags.gni")
- import("//testing/test.gni")
- if (is_mac) {
- import("//build/config/mac/mac_sdk.gni")
- }
- if (is_android) {
- import("//build/config/android/rules.gni")
- }
- assert(enable_basic_printing)
- if (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.")
- }
- # Lower-dependency base printing files which are needed by both :printing and
- # //printing/backend without incurring deeper UI dependencies (e.g.,
- # //ui/accessibility). New files should normally be added to :printing, and
- # only be moved here if they are also required by //printing/backend.
- component("printing_base") {
- sources = [
- "print_job_constants.cc",
- "print_job_constants.h",
- "printing_features.cc",
- "printing_features.h",
- "printing_utils.cc",
- "printing_utils.h",
- "units.cc",
- "units.h",
- ]
- if (use_cups_ipp || is_chromeos) {
- sources += [
- "printer_query_result.h",
- "printer_status.cc",
- "printer_status.h",
- ]
- }
- if (use_cups) {
- public_configs = [ ":cups" ]
- }
- cflags = []
- defines = [ "IS_PRINTING_BASE_IMPL" ]
- public_deps = [
- "//build:chromeos_buildflags",
- "//printing/buildflags",
- ]
- deps = [
- "//base",
- "//third_party/icu",
- "//ui/gfx",
- "//ui/gfx/geometry",
- ]
- }
- if (enable_oop_printing && (is_linux || is_chromeos)) {
- source_set("printing_sandbox_hook") {
- sources = [
- "sandbox/print_backend_sandbox_hook_linux.cc",
- "sandbox/print_backend_sandbox_hook_linux.h",
- ]
- deps = [
- "//base",
- "//sandbox/linux:sandbox_services",
- "//sandbox/policy",
- "//services/network:network_sandbox_hook",
- ]
- if (use_cups) {
- configs += [ ":cups" ]
- }
- if (is_chromeos && use_cups) {
- deps += [ "//printing/backend" ]
- }
- }
- }
- source_set("native_drawing_context") {
- sources = [ "native_drawing_context.h" ]
- deps = [ "//base" ]
- }
- component("metafile") {
- sources = [
- "metafile.cc",
- "metafile.h",
- "metafile_agent.cc",
- "metafile_agent.h",
- "metafile_skia.cc",
- "metafile_skia.h",
- ]
- defines = [ "IS_PRINTING_METAFILE_IMPL" ]
- public_deps = [
- ":native_drawing_context",
- "//printing/mojom",
- ]
- deps = [
- "//cc/paint",
- "//printing/common",
- "//ui/accessibility",
- ]
- if (is_mac) {
- sources += [
- "pdf_metafile_cg_mac.cc",
- "pdf_metafile_cg_mac.h",
- ]
- frameworks = [
- "ApplicationServices.framework",
- "CoreFoundation.framework",
- ]
- }
- if (is_win) {
- sources += [
- "emf_win.cc",
- "emf_win.h",
- ]
- }
- }
- component("printing") {
- sources = [
- "nup_parameters.cc",
- "nup_parameters.h",
- "page_number.cc",
- "page_number.h",
- "page_range.cc",
- "page_range.h",
- "page_setup.cc",
- "page_setup.h",
- "pdf_render_settings.h",
- "print_dialog_linux_interface.h",
- "print_settings.cc",
- "print_settings.h",
- "print_settings_conversion.cc",
- "print_settings_conversion.h",
- "printed_document.cc",
- "printed_document.h",
- "printing_context.cc",
- "printing_context.h",
- "printing_context_factory_for_test.h",
- "pwg_raster_settings.h",
- ]
- cflags = []
- defines = [ "IS_PRINTING_IMPL" ]
- public_deps = [
- ":metafile",
- ":native_drawing_context",
- ":printing_base",
- ]
- deps = [
- "//base",
- "//base:i18n",
- "//base/third_party/dynamic_annotations",
- "//build:chromeos_buildflags",
- "//printing/mojom",
- "//skia",
- "//third_party/icu",
- "//ui/gfx",
- "//ui/gfx/geometry",
- "//url",
- ]
- if (is_android) {
- sources += [
- "printing_context_android.cc",
- "printing_context_android.h",
- ]
- deps += [
- ":printing_jni_headers",
- "//ui/android",
- ]
- }
- if (is_chromeos) {
- sources += [
- "printing_context_no_system_dialog.cc",
- "printing_context_no_system_dialog.h",
- ]
- }
- # TODO(crbug.com/1272828): Determine need for Fuchsia-specific implementation.
- if (is_linux || is_fuchsia) {
- sources += [
- "printing_context_linux.cc",
- "printing_context_linux.h",
- ]
- }
- if (is_linux) {
- deps += [ "//ui/linux:linux_ui" ]
- }
- if (is_mac) {
- sources += [
- "print_settings_initializer_mac.cc",
- "print_settings_initializer_mac.h",
- "printing_context_mac.h",
- "printing_context_mac.mm",
- ]
- frameworks = [
- "AppKit.framework",
- "QuartzCore.framework",
- "ApplicationServices.framework",
- "CoreFoundation.framework",
- "CoreGraphics.framework",
- ]
- }
- if (is_win) {
- sources += [
- "print_settings_initializer_win.cc",
- "print_settings_initializer_win.h",
- "printed_document_win.cc",
- "printed_page_win.cc",
- "printed_page_win.h",
- "printing_context_system_dialog_win.cc",
- "printing_context_system_dialog_win.h",
- "printing_context_win.cc",
- "printing_context_win.h",
- ]
- deps += [ "//printing/backend" ]
- }
- if (use_aura) {
- deps += [ "//ui/aura" ]
- }
- if (use_cups) {
- if (is_chromeos) {
- sources += [
- "printing_context_chromeos.cc",
- "printing_context_chromeos.h",
- ]
- deps += [ "//printing/backend" ]
- }
- }
- if (enable_oop_printing && (is_linux || is_chromeos)) {
- deps += [ ":printing_sandbox_hook" ]
- }
- }
- static_library("test_support") {
- testonly = true
- sources = [
- "image.cc",
- "image.h",
- "test_printing_context.cc",
- "test_printing_context.h",
- ]
- public_deps = [
- "//printing",
- "//printing/backend:test_support",
- "//printing/mojom",
- "//ui/gfx/geometry",
- ]
- deps = [
- "//base",
- "//build:chromeos_buildflags",
- "//printing/backend",
- "//skia",
- "//ui/gfx",
- ]
- if (is_android) {
- sources += [ "image_android.cc" ]
- }
- if (is_linux || is_chromeos || is_fuchsia) {
- sources += [ "image_linux.cc" ]
- }
- if (is_mac) {
- sources += [ "image_mac.cc" ]
- }
- if (is_win) {
- sources += [ "image_win.cc" ]
- }
- }
- test("printing_unittests") {
- sources = [
- "backend/print_backend_unittest.cc",
- "backend/print_backend_utils_unittest.cc",
- "metafile_skia_unittest.cc",
- "nup_parameters_unittest.cc",
- "page_number_unittest.cc",
- "page_range_unittest.cc",
- "page_setup_unittest.cc",
- "print_settings_conversion_unittest.cc",
- "print_settings_unittest.cc",
- "printing_test.h",
- "printing_utils_unittest.cc",
- "units_unittest.cc",
- ]
- deps = [
- ":printing",
- ":test_support",
- "//base/test:test_support",
- "//build:chromeos_buildflags",
- "//mojo/core/test:run_all_unittests",
- "//mojo/public/cpp/test_support:test_utils",
- "//printing/backend",
- "//printing/backend:test_support",
- "//printing/common",
- "//printing/mojom",
- "//testing/gmock",
- "//testing/gtest",
- "//ui/base",
- "//ui/gfx",
- "//ui/gfx:test_support",
- "//ui/gfx/geometry",
- ]
- if (enable_oop_printing) {
- sources += [
- "backend/mojom/print_backend_mojom_traits_unittest.cc",
- "backend/test_print_backend_unittest.cc",
- "mojom/printing_context_mojom_traits_unittest.cc",
- ]
- deps += [
- "//printing/backend/mojom",
- "//printing/mojom:printing_context",
- ]
- }
- if (is_mac) {
- sources += [ "pdf_metafile_cg_mac_unittest.cc" ]
- data = [
- "test/data/pdf_cg/",
- "../pdf/test/data/",
- ]
- }
- if (is_win) {
- sources += [
- "emf_win_unittest.cc",
- "printed_page_win_unittest.cc",
- "printing_context_win_unittest.cc",
- ]
- data = [ "test/data/emf/" ]
- }
- if (use_cups) {
- if (use_cups_ipp) {
- sources += [ "backend/cups_ipp_helper_unittest.cc" ]
- }
- if (is_chromeos) {
- sources += [ "printing_context_chromeos_unittest.cc" ]
- }
- if (!is_chromeos_ash) {
- sources += [
- "backend/cups_helper_unittest.cc",
- "backend/print_backend_cups_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" ]
- }
- android_library("printing_java") {
- deps = [
- "//base:base_java",
- "//base:jni_java",
- "//build/android:build_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- "//ui/android:ui_java",
- ]
- sources = [
- "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/PrintingController.java",
- "android/java/src/org/chromium/printing/PrintingControllerImpl.java",
- ]
- annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
- }
- }
|