gn vim: apply to *.gni also
[chromium-blink-merge.git] / pdf / pdf.gyp
blobf1e8e3e658db0dbc95bdde88350f95f14c3d80b1
2   'variables': {
3     'chromium_code': 1,
4     'pdf_engine%': 0,  # 0 PDFium
5   },
6   'target_defaults': {
7     'cflags': [
8       '-fPIC',
9     ],
10   },
11   'targets': [
12     {
13       'target_name': 'pdf',
14       'type': 'loadable_module',
15       'msvs_guid': '647863C0-C7A3-469A-B1ED-AD7283C34BED',
16       'dependencies': [
17         '../base/base.gyp:base',
18         '../net/net.gyp:net',
19         '../ppapi/ppapi.gyp:ppapi_cpp',
20         '../third_party/pdfium/pdfium.gyp:pdfium',
21       ],
22       'xcode_settings': {
23         'INFOPLIST_FILE': 'Info.plist',
24       },
25       'mac_framework_dirs': [
26         '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks',
27       ],
28       'ldflags': [ '-L<(PRODUCT_DIR)',],
29       'sources': [
30         'button.h',
31         'button.cc',
32         'chunk_stream.h',
33         'chunk_stream.cc',
34         'control.h',
35         'control.cc',
36         'document_loader.h',
37         'document_loader.cc',
38         'draw_utils.cc',
39         'draw_utils.h',
40         'fading_control.cc',
41         'fading_control.h',
42         'fading_controls.cc',
43         'fading_controls.h',
44         'instance.cc',
45         'instance.h',
46         'number_image_generator.cc',
47         'number_image_generator.h',
48         'out_of_process_instance.cc',
49         'out_of_process_instance.h',
50         'page_indicator.cc',
51         'page_indicator.h',
52         'paint_aggregator.cc',
53         'paint_aggregator.h',
54         'paint_manager.cc',
55         'paint_manager.h',
56         'pdf.cc',
57         'pdf.h',
58         'pdf.rc',
59         'progress_control.cc',
60         'progress_control.h',
61         'pdf_engine.h',
62         'preview_mode_client.cc',
63         'preview_mode_client.h',
64         'resource.h',
65         'resource_consts.h',
66         'thumbnail_control.cc',
67         'thumbnail_control.h',
68         '../chrome/browser/chrome_page_zoom_constants.cc',
69         '../content/common/page_zoom.cc',
70       ],
71       'conditions': [
72         ['pdf_engine==0', {
73           'sources': [
74             'pdfium/pdfium_assert_matching_enums.cc',
75             'pdfium/pdfium_engine.cc',
76             'pdfium/pdfium_engine.h',
77             'pdfium/pdfium_mem_buffer_file_read.cc',
78             'pdfium/pdfium_mem_buffer_file_read.h',
79             'pdfium/pdfium_mem_buffer_file_write.cc',
80             'pdfium/pdfium_mem_buffer_file_write.h',
81             'pdfium/pdfium_page.cc',
82             'pdfium/pdfium_page.h',
83             'pdfium/pdfium_range.cc',
84             'pdfium/pdfium_range.h',
85           ],
86         }],
87         ['OS!="win"', {
88           'sources!': [
89             'pdf.rc',
90           ],
91         }],
92         ['OS=="mac"', {
93           'mac_bundle': 1,
94           'product_name': 'PDF',
95           'product_extension': 'plugin',
96           # Strip the shipping binary of symbols so "Foxit" doesn't appear in
97           # the binary.  Symbols are stored in a separate .dSYM.
98           'variables': {
99             'mac_real_dsym': 1,
100           },
101           'sources+': [
102             'Info.plist'
103           ],
104         }],
105         ['OS=="win"', {
106           'defines': [
107             'COMPILE_CONTENT_STATICALLY',
108           ],
109           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
110           'msvs_disabled_warnings': [ 4267, ],
111         }],
112         ['OS=="linux"', {
113           'configurations': {
114             'Release_Base': {
115               #'cflags': [ '-fno-weak',],  # get rid of symbols that strip doesn't remove.
116               # Don't do this for now since official builder will take care of it.  That
117               # way symbols can still be uploaded to the crash server.
118               #'ldflags': [ '-s',],  # strip local symbols from binary.
119             },
120           },
121         }],
122       ],
123     },
124   ],
125   'conditions': [
126     # CrOS has a separate step to do this.
127     ['OS=="linux" and chromeos==0',
128       { 'targets': [
129         {
130           'target_name': 'pdf_linux_symbols',
131           'type': 'none',
132           'conditions': [
133             ['linux_dump_symbols==1', {
134               'actions': [
135                 {
136                   'action_name': 'dump_symbols',
137                   'inputs': [
138                     '<(DEPTH)/build/linux/dump_app_syms',
139                     '<(PRODUCT_DIR)/dump_syms',
140                     '<(PRODUCT_DIR)/libpdf.so',
141                   ],
142                   'outputs': [
143                     '<(PRODUCT_DIR)/libpdf.so.breakpad.<(target_arch)',
144                   ],
145                   'action': ['<(DEPTH)/build/linux/dump_app_syms',
146                              '<(PRODUCT_DIR)/dump_syms',
147                              '<(linux_strip_binary)',
148                              '<(PRODUCT_DIR)/libpdf.so',
149                              '<@(_outputs)'],
150                   'message': 'Dumping breakpad symbols to <(_outputs)',
151                   'process_outputs_as_sources': 1,
152                 },
153               ],
154               'dependencies': [
155                 'pdf',
156                 '../breakpad/breakpad.gyp:dump_syms',
157               ],
158             }],
159           ],
160         },
161       ],
162     },],  # OS=="linux" and chromeos==0
163     ['OS=="win" and fastbuild==0 and target_arch=="ia32" and syzyasan==1', {
164       'variables': {
165         'dest_dir': '<(PRODUCT_DIR)/syzygy',
166       },
167       'targets': [
168         {
169           'target_name': 'pdf_syzyasan',
170           'type': 'none',
171           'sources' : [],
172           'dependencies': [
173             'pdf',
174           ],
175           # Instrument PDFium with SyzyAsan.
176           'actions': [
177             {
178               'action_name': 'Instrument PDFium with SyzyAsan',
179               'inputs': [
180                 '<(PRODUCT_DIR)/pdf.dll',
181               ],
182               'outputs': [
183                 '<(dest_dir)/pdf.dll',
184                 '<(dest_dir)/pdf.dll.pdb',
185               ],
186               'action': [
187                 'python',
188                 '<(DEPTH)/chrome/tools/build/win/syzygy_instrument.py',
189                 '--mode', 'asan',
190                 '--input_executable', '<(PRODUCT_DIR)/pdf.dll',
191                 '--input_symbol', '<(PRODUCT_DIR)/pdf.dll.pdb',
192                 '--destination_dir', '<(dest_dir)',
193               ],
194             },
195           ],
196         },
197       ],
198     }],  # OS=="win" and fastbuild==0 and target_arch=="ia32" and syzyasan==1
199   ],