{ 'variables': { 'chromium_code': 1, 'pdf_engine%': 0, # 0 PDFium }, 'target_defaults': { 'cflags': [ '-fPIC', ], }, 'targets': [ { 'target_name': 'pdf', 'type': 'loadable_module', 'msvs_guid': '647863C0-C7A3-469A-B1ED-AD7283C34BED', 'dependencies': [ '../base/base.gyp:base', '../net/net.gyp:net', '../ppapi/ppapi.gyp:ppapi_cpp', '../third_party/pdfium/pdfium.gyp:pdfium', ], 'xcode_settings': { 'INFOPLIST_FILE': 'Info.plist', }, 'mac_framework_dirs': [ '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks', ], 'ldflags': [ '-L<(PRODUCT_DIR)',], 'sources': [ 'button.h', 'button.cc', 'chunk_stream.h', 'chunk_stream.cc', 'control.h', 'control.cc', 'document_loader.h', 'document_loader.cc', 'draw_utils.cc', 'draw_utils.h', 'fading_control.cc', 'fading_control.h', 'fading_controls.cc', 'fading_controls.h', 'instance.cc', 'instance.h', 'number_image_generator.cc', 'number_image_generator.h', 'out_of_process_instance.cc', 'out_of_process_instance.h', 'page_indicator.cc', 'page_indicator.h', 'paint_aggregator.cc', 'paint_aggregator.h', 'paint_manager.cc', 'paint_manager.h', 'pdf.cc', 'pdf.h', 'pdf.rc', 'progress_control.cc', 'progress_control.h', 'pdf_engine.h', 'preview_mode_client.cc', 'preview_mode_client.h', 'resource.h', 'resource_consts.h', 'thumbnail_control.cc', 'thumbnail_control.h', '../chrome/browser/chrome_page_zoom_constants.cc', '../content/common/page_zoom.cc', ], 'conditions': [ ['pdf_engine==0', { 'sources': [ 'pdfium/pdfium_assert_matching_enums.cc', 'pdfium/pdfium_engine.cc', 'pdfium/pdfium_engine.h', 'pdfium/pdfium_mem_buffer_file_read.cc', 'pdfium/pdfium_mem_buffer_file_read.h', 'pdfium/pdfium_mem_buffer_file_write.cc', 'pdfium/pdfium_mem_buffer_file_write.h', 'pdfium/pdfium_page.cc', 'pdfium/pdfium_page.h', 'pdfium/pdfium_range.cc', 'pdfium/pdfium_range.h', ], }], ['OS!="win"', { 'sources!': [ 'pdf.rc', ], }], ['OS=="mac"', { 'mac_bundle': 1, 'product_name': 'PDF', 'product_extension': 'plugin', # Strip the shipping binary of symbols so "Foxit" doesn't appear in # the binary. Symbols are stored in a separate .dSYM. 'variables': { 'mac_real_dsym': 1, }, 'sources+': [ 'Info.plist' ], }], ['OS=="win"', { 'defines': [ 'COMPILE_CONTENT_STATICALLY', ], # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 'msvs_disabled_warnings': [ 4267, ], }], ['OS=="linux"', { 'configurations': { 'Release_Base': { #'cflags': [ '-fno-weak',], # get rid of symbols that strip doesn't remove. # Don't do this for now since official builder will take care of it. That # way symbols can still be uploaded to the crash server. #'ldflags': [ '-s',], # strip local symbols from binary. }, }, # Use a custom version script to prevent leaking the vendor name in # visible symbols. 'ldflags': [ '-Wl,--version-script=<!(cd <(DEPTH) && pwd -P)/pdf/libpdf.map' ], }], ], }, ], 'conditions': [ # CrOS has a separate step to do this. ['OS=="linux" and chromeos==0', { 'targets': [ { 'target_name': 'pdf_linux_symbols', 'type': 'none', 'conditions': [ ['linux_dump_symbols==1', { 'actions': [ { 'action_name': 'dump_symbols', 'inputs': [ '<(DEPTH)/build/linux/dump_app_syms', '<(PRODUCT_DIR)/dump_syms', '<(PRODUCT_DIR)/libpdf.so', ], 'outputs': [ '<(PRODUCT_DIR)/libpdf.so.breakpad.<(target_arch)', ], 'action': ['<(DEPTH)/build/linux/dump_app_syms', '<(PRODUCT_DIR)/dump_syms', '<(linux_strip_binary)', '<(PRODUCT_DIR)/libpdf.so', '<@(_outputs)'], 'message': 'Dumping breakpad symbols to <(_outputs)', 'process_outputs_as_sources': 1, }, ], 'dependencies': [ 'pdf', '../breakpad/breakpad.gyp:dump_syms', ], }], ], }, ], },], # OS=="linux" and chromeos==0 ['OS=="win" and fastbuild==0 and target_arch=="ia32" and syzyasan==1', { 'variables': { 'dest_dir': '<(PRODUCT_DIR)/syzygy', }, 'targets': [ { 'target_name': 'pdf_syzyasan', 'type': 'none', 'sources' : [], 'dependencies': [ 'pdf', ], # Instrument PDFium with SyzyAsan. 'actions': [ { 'action_name': 'Instrument PDFium with SyzyAsan', 'inputs': [ '<(PRODUCT_DIR)/pdf.dll', ], 'outputs': [ '<(dest_dir)/pdf.dll', '<(dest_dir)/pdf.dll.pdb', ], 'action': [ 'python', '<(DEPTH)/chrome/tools/build/win/syzygy_instrument.py', '--mode', 'asan', '--input_executable', '<(PRODUCT_DIR)/pdf.dll', '--input_symbol', '<(PRODUCT_DIR)/pdf.dll.pdb', '--destination_dir', '<(dest_dir)', ], }, ], }, ], }], # OS=="win" and fastbuild==0 and target_arch=="ia32" and syzyasan==1 ], }