Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / printing / printing.gyp
blobe87fe9c9ac1adb9aa832741ae763743a7f483dc3
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.
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 <(sysroot))',
277                   ],
278                 },
279               }],
280               ['os_bsd==1', {
281                 'cflags': [
282                   '<!@(python cups_config_helper.py --cflags <(sysroot))',
283                 ],
284               }],
285             ],
286           },
287         }],
288       ],
289     },
290   ],
291   'conditions': [
292     ['OS == "android"', {
293       'targets': [
294         {
295           # GN: //printing:printing_jni_headers
296           'target_name': 'printing_jni_headers',
297           'type': 'none',
298           'sources': [
299             'android/java/src/org/chromium/printing/PrintingContext.java',
300           ],
301           'variables': {
302             'jni_gen_package': 'printing',
303           },
304           'includes': [ '../build/jni_generator.gypi' ],
305         },
306         {
307           # GN: //printing:printing_java
308           'target_name': 'printing_java',
309           'type': 'none',
310           'variables': {
311             'java_in_dir': '../printing/android/java',
312           },
313           'dependencies': [
314             '../base/base.gyp:base_java',
315           ],
316           'includes': [ '../build/java.gypi'  ],
317         }
318       ]
319     }],
320     ['test_isolation_mode != "noop"', {
321       'targets': [
322         {
323           'target_name': 'printing_unittests_run',
324           'type': 'none',
325           'dependencies': [
326             'printing_unittests',
327           ],
328           'includes': [
329             '../build/isolate.gypi',
330           ],
331           'sources': [
332             'printing_unittests.isolate',
333           ],
334         },
335       ],
336     }],
337   ]