1 { 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 ], 200 } 201