Home | History | Annotate | Download | only in printing
      1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 {
      6   'variables': {
      7     'chromium_code': 1,
      8   },
      9   'targets': [
     10     {
     11       'target_name': 'printing',
     12       'type': '<(component)',
     13       'dependencies': [
     14         '../base/base.gyp:base',
     15         '../base/base.gyp:base_i18n',
     16         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
     17         '../skia/skia.gyp:skia',
     18         '../third_party/icu/icu.gyp:icui18n',
     19         '../third_party/icu/icu.gyp:icuuc',
     20         '../ui/gfx/gfx.gyp:gfx',
     21         '../ui/gfx/gfx.gyp:gfx_geometry',
     22         '../url/url.gyp:url_lib',
     23       ],
     24       'defines': [
     25         'PRINTING_IMPLEMENTATION',
     26       ],
     27       'include_dirs': [
     28         '..',
     29       ],
     30       'sources': [
     31         'backend/print_backend.cc',
     32         'backend/print_backend.h',
     33         'backend/print_backend_consts.cc',
     34         'backend/print_backend_consts.h',
     35         'backend/print_backend_dummy.cc',
     36         'backend/print_backend_win.cc',
     37         'backend/printing_info_win.cc',
     38         'backend/printing_info_win.h',
     39         'emf_win.cc',
     40         'emf_win.h',
     41         'image.cc',
     42         'image.h',
     43         'image_android.cc',
     44         'image_linux.cc',
     45         'image_mac.cc',
     46         'image_win.cc',
     47         'metafile.cc',
     48         'metafile.h',
     49         'metafile_skia_wrapper.cc',
     50         'metafile_skia_wrapper.h',
     51         'page_number.cc',
     52         'page_number.h',
     53         'page_range.cc',
     54         'page_range.h',
     55         'page_setup.cc',
     56         'page_setup.h',
     57         'page_size_margins.h',
     58         'pdf_metafile_cg_mac.cc',
     59         'pdf_metafile_cg_mac.h',
     60         'pdf_metafile_skia.cc',
     61         'pdf_metafile_skia.h',
     62         'print_dialog_gtk_interface.h',
     63         'print_job_constants.cc',
     64         'print_job_constants.h',
     65         'print_settings.cc',
     66         'print_settings.h',
     67         'print_settings_conversion.cc',
     68         'print_settings_conversion.h',
     69         'print_settings_initializer_mac.cc',
     70         'print_settings_initializer_mac.h',
     71         'print_settings_initializer_win.cc',
     72         'print_settings_initializer_win.h',
     73         'printed_document.cc',
     74         'printed_document.h',
     75         'printed_document_linux.cc',
     76         'printed_document_mac.cc',
     77         'printed_document_win.cc',
     78         'printed_page.cc',
     79         'printed_page.h',
     80         'printed_pages_source.h',
     81         'printing_context.cc',
     82         'printing_context.h',
     83         'printing_context_system_dialog_win.cc',
     84         'printing_context_system_dialog_win.h',
     85         'printing_context_win.cc',
     86         'printing_context_win.h',
     87         'printing_utils.cc',
     88         'printing_utils.h',
     89         'units.cc',
     90         'units.h',
     91       ],
     92       'direct_dependent_settings': {
     93         'include_dirs': [
     94           '..',
     95         ],
     96       },
     97       'conditions': [
     98         ['use_aura==1', {
     99           'dependencies': [
    100             '<(DEPTH)/ui/aura/aura.gyp:aura',
    101           ],
    102         }],
    103         # Mac-Aura does not support printing.
    104         ['OS=="mac" and use_aura==1',{
    105           'sources!': [
    106             'printed_document_mac.cc',
    107             'printing_context_mac.mm',
    108             'printing_context_mac.h',
    109           ],
    110         }],
    111         ['OS=="mac" and use_aura==0',{
    112           'sources': [
    113             'printing_context_mac.mm',
    114             'printing_context_mac.h',
    115           ],
    116         }],
    117         ['OS=="win"', {
    118           'dependencies': [
    119             '<(DEPTH)/ui/aura/aura.gyp:aura',
    120           ],
    121           'defines': [
    122             # PRINT_BACKEND_AVAILABLE disables the default dummy implementation
    123             # of the print backend and enables a custom implementation instead.
    124             'PRINT_BACKEND_AVAILABLE',
    125           ],
    126           'sources': [
    127             'backend/win_helper.cc',
    128             'backend/win_helper.h',
    129           ],
    130         }],
    131         ['chromeos==1',{
    132           'sources': [
    133             'printing_context_no_system_dialog.cc',
    134             'printing_context_no_system_dialog.h',
    135           ],
    136         }],
    137         ['use_cups==1', {
    138           'dependencies': [
    139             'cups',
    140           ],
    141           'variables': {
    142             'cups_version': '<!(cups-config --api-version)',
    143           },
    144           'conditions': [
    145             ['cups_version in ["1.6", "1.7"]', {
    146               'cflags': [
    147                 # CUPS 1.6 deprecated the PPD APIs, but we will stay with this
    148                 # API for now as supported Linux and Mac OS'es are still using
    149                 # older versions of CUPS. More info: crbug.com/226176
    150                 '-Wno-deprecated-declarations',
    151                 # CUPS 1.7 deprecates httpConnectEncrypt(), see the mac section
    152                 # below.
    153               ],
    154             }],
    155             ['OS=="mac" and mac_sdk=="10.9"', {
    156               # The 10.9 SDK includes cups 1.7, which deprecates
    157               # httpConnectEncrypt() in favor of httpConnect2(). hhttpConnect2()
    158               # is new in 1.7, so it doesn't exist on OS X 10.6-10.8 and we
    159               # can't use it until 10.9 is our minimum system version.
    160               # (cups_version isn't reliable on OS X, so key the check off of
    161               # mac_sdk).
    162               'xcode_settings': {
    163                 'WARNING_CFLAGS':  [
    164                   '-Wno-deprecated-declarations',
    165                 ],
    166               },
    167             }],
    168           ],
    169           'defines': [
    170             # PRINT_BACKEND_AVAILABLE disables the default dummy implementation
    171             # of the print backend and enables a custom implementation instead.
    172             'PRINT_BACKEND_AVAILABLE',
    173           ],
    174           'sources': [
    175             'backend/cups_helper.cc',
    176             'backend/cups_helper.h',
    177             'backend/print_backend_cups.cc',
    178           ],
    179         }],
    180         ['OS=="linux" and chromeos==1', {
    181           'defines': [
    182             # PRINT_BACKEND_AVAILABLE disables the default dummy implementation
    183             # of the print backend and enables a custom implementation instead.
    184             'PRINT_BACKEND_AVAILABLE',
    185           ],
    186           'sources': [
    187             'backend/print_backend_chromeos.cc',
    188           ],
    189         }],
    190         ['OS=="linux" and chromeos==0', {
    191           'sources': [
    192             'printing_context_linux.cc',
    193             'printing_context_linux.h',
    194           ],
    195         }],
    196         ['OS=="android"', {
    197           'sources': [
    198             'printing_context_android.cc',
    199             'printing_context_android.h',
    200           ],
    201           'dependencies': [
    202             'printing_jni_headers',
    203           ],
    204         }],
    205       ],
    206     },
    207     {
    208       'target_name': 'printing_unittests',
    209       'type': 'executable',
    210       'dependencies': [
    211         '../base/base.gyp:run_all_unittests',
    212         '../base/base.gyp:test_support_base',
    213         '../testing/gtest.gyp:gtest',
    214         '../ui/base/ui_base.gyp:ui_base',
    215         '../ui/gfx/gfx.gyp:gfx',
    216         '../ui/gfx/gfx.gyp:gfx_geometry',
    217         '../ui/gfx/gfx.gyp:gfx_test_support',
    218         'printing',
    219       ],
    220       'sources': [
    221         'emf_win_unittest.cc',
    222         'page_number_unittest.cc',
    223         'page_range_unittest.cc',
    224         'page_setup_unittest.cc',
    225         'pdf_metafile_cg_mac_unittest.cc',
    226         'printed_page_unittest.cc',
    227         'printing_context_win_unittest.cc',
    228         'printing_test.h',
    229         'printing_utils_unittest.cc',
    230         'units_unittest.cc',
    231       ],
    232       'conditions': [
    233         ['OS!="mac"', {'sources/': [['exclude', '_mac_unittest\\.(cc|mm?)$']]}],
    234         ['OS!="win"', {'sources/': [['exclude', '_win_unittest\\.cc$']]}],
    235         ['use_cups==1', {
    236           'defines': [
    237             'USE_CUPS',
    238           ],
    239           'sources': [
    240             'backend/cups_helper_unittest.cc',
    241           ],
    242         }],
    243         [ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
    244           'conditions': [
    245             ['use_allocator!="none"', {
    246               'dependencies': [
    247                 '../base/allocator/allocator.gyp:allocator',
    248               ],
    249             }],
    250           ],
    251         }],
    252       ],
    253       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    254       'msvs_disabled_warnings': [ 4267, ],
    255     },
    256     {
    257       # GN version: //printing:cups (config, not a target).
    258       'target_name': 'cups',
    259       'type': 'none',
    260       'conditions': [
    261         ['use_cups==1', {
    262           'direct_dependent_settings': {
    263             'defines': [
    264               'USE_CUPS',
    265             ],
    266             'conditions': [
    267               ['OS=="mac"', {
    268                 'link_settings': {
    269                   'libraries': [
    270                     '$(SDKROOT)/usr/lib/libcups.dylib',
    271                   ]
    272                 },
    273               }, {
    274                 'link_settings': {
    275                   'libraries': [
    276                     '<!@(python cups_config_helper.py --libs)',
    277                   ],
    278                 },
    279               }],
    280               ['os_bsd==1', {
    281                 'cflags': [
    282                   '<!@(python cups_config_helper.py --cflags)',
    283                 ],
    284               }],
    285             ],
    286           },
    287         }],
    288       ],
    289     },
    290   ],
    291   'conditions': [
    292     ['OS == "android"', {
    293       'targets': [
    294         {
    295           'target_name': 'printing_jni_headers',
    296           'type': 'none',
    297           'sources': [
    298             'android/java/src/org/chromium/printing/PrintingContext.java',
    299           ],
    300           'variables': {
    301             'jni_gen_package': 'printing',
    302           },
    303           'includes': [ '../build/jni_generator.gypi' ],
    304         },
    305 	{
    306 	  'target_name': 'printing_java',
    307           'type': 'none',
    308           'variables': {
    309             'java_in_dir': '../printing/android/java',
    310           },
    311           'dependencies': [
    312             '../base/base.gyp:base_java',
    313           ],
    314           'includes': [ '../build/java.gypi'  ],
    315 	}
    316       ]
    317     }],
    318   ]
    319 }
    320