# Copyright (c) 2009 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. { 'variables': { 'chromium_code': 1, 'xul_sdk_dir': '../third_party/xulrunner-sdk/<(OS)', # Keep the archive builder happy. 'chrome_personalization%': 1, 'use_syncapi_stub%': 0, # Deps info. 'xul_include_directories': [ # TODO(slightlyoff): pare these down. This makes it too easy to # regress to using unfrozen FF interfaces. '<(xul_sdk_dir)/include', '<(xul_sdk_dir)/include/accessibility', '<(xul_sdk_dir)/include/alerts', '<(xul_sdk_dir)/include/appcomps', '<(xul_sdk_dir)/include/appshell', '<(xul_sdk_dir)/include/autocomplete', '<(xul_sdk_dir)/include/autoconfig', '<(xul_sdk_dir)/include/ax_common', '<(xul_sdk_dir)/include/browser', '<(xul_sdk_dir)/include/cairo', '<(xul_sdk_dir)/include/caps', '<(xul_sdk_dir)/include/chardet', '<(xul_sdk_dir)/include/chrome', '<(xul_sdk_dir)/include/commandhandler', '<(xul_sdk_dir)/include/composer', '<(xul_sdk_dir)/include/content', '<(xul_sdk_dir)/include/contentprefs', '<(xul_sdk_dir)/include/cookie', '<(xul_sdk_dir)/include/crashreporter', '<(xul_sdk_dir)/include/docshell', '<(xul_sdk_dir)/include/dom', '<(xul_sdk_dir)/include/downloads', '<(xul_sdk_dir)/include/editor', '<(xul_sdk_dir)/include/embed_base', '<(xul_sdk_dir)/include/embedcomponents', '<(xul_sdk_dir)/include/expat', '<(xul_sdk_dir)/include/extensions', '<(xul_sdk_dir)/include/exthandler', '<(xul_sdk_dir)/include/exthelper', '<(xul_sdk_dir)/include/fastfind', '<(xul_sdk_dir)/include/feeds', '<(xul_sdk_dir)/include/find', '<(xul_sdk_dir)/include/gfx', '<(xul_sdk_dir)/include/htmlparser', '<(xul_sdk_dir)/include/imgicon', '<(xul_sdk_dir)/include/imglib2', '<(xul_sdk_dir)/include/inspector', '<(xul_sdk_dir)/include/intl', '<(xul_sdk_dir)/include/jar', '<(xul_sdk_dir)/include/java', '<(xul_sdk_dir)/include/jpeg', '<(xul_sdk_dir)/include/js', '<(xul_sdk_dir)/include/jsdebug', '<(xul_sdk_dir)/include/jsurl', '<(xul_sdk_dir)/include/layout', '<(xul_sdk_dir)/include/lcms', '<(xul_sdk_dir)/include/libbz2', '<(xul_sdk_dir)/include/libmar', '<(xul_sdk_dir)/include/libpixman', '<(xul_sdk_dir)/include/libreg', '<(xul_sdk_dir)/include/liveconnect', '<(xul_sdk_dir)/include/locale', '<(xul_sdk_dir)/include/loginmgr', '<(xul_sdk_dir)/include/lwbrk', '<(xul_sdk_dir)/include/mimetype', '<(xul_sdk_dir)/include/morkreader', '<(xul_sdk_dir)/include/necko', '<(xul_sdk_dir)/include/nkcache', '<(xul_sdk_dir)/include/nspr', '<(xul_sdk_dir)/include/nss', '<(xul_sdk_dir)/include/oji', '<(xul_sdk_dir)/include/parentalcontrols', '<(xul_sdk_dir)/include/pipboot', '<(xul_sdk_dir)/include/pipnss', '<(xul_sdk_dir)/include/pippki', '<(xul_sdk_dir)/include/places', '<(xul_sdk_dir)/include/plugin', '<(xul_sdk_dir)/include/png', '<(xul_sdk_dir)/include/pref', '<(xul_sdk_dir)/include/prefetch', '<(xul_sdk_dir)/include/profdirserviceprovider', '<(xul_sdk_dir)/include/profile', '<(xul_sdk_dir)/include/rdf', '<(xul_sdk_dir)/include/rdfutil', '<(xul_sdk_dir)/include/satchel', '<(xul_sdk_dir)/include/shistory', '<(xul_sdk_dir)/include/simple', '<(xul_sdk_dir)/include/spellchecker', '<(xul_sdk_dir)/include/sqlite3', '<(xul_sdk_dir)/include/storage', '<(xul_sdk_dir)/include/string', '<(xul_sdk_dir)/include/thebes', '<(xul_sdk_dir)/include/toolkitcomps', '<(xul_sdk_dir)/include/txmgr', '<(xul_sdk_dir)/include/txtsvc', '<(xul_sdk_dir)/include/uconv', '<(xul_sdk_dir)/include/ucvcn', '<(xul_sdk_dir)/include/ucvibm', '<(xul_sdk_dir)/include/ucvja', '<(xul_sdk_dir)/include/ucvko', '<(xul_sdk_dir)/include/ucvlatin', '<(xul_sdk_dir)/include/ucvmath', '<(xul_sdk_dir)/include/ucvtw', '<(xul_sdk_dir)/include/ucvtw2', '<(xul_sdk_dir)/include/unicharutil', '<(xul_sdk_dir)/include/update', '<(xul_sdk_dir)/include/uriloader', '<(xul_sdk_dir)/include/urlformatter', '<(xul_sdk_dir)/include/util', '<(xul_sdk_dir)/include/view', '<(xul_sdk_dir)/include/webbrowserpersist', '<(xul_sdk_dir)/include/webbrwsr', '<(xul_sdk_dir)/include/webshell', '<(xul_sdk_dir)/include/widget', '<(xul_sdk_dir)/include/windowwatcher', '<(xul_sdk_dir)/include/xml', '<(xul_sdk_dir)/include/xml-rpc', '<(xul_sdk_dir)/include/xpcom', '<(xul_sdk_dir)/include/xpconnect', '<(xul_sdk_dir)/include/xpinstall', '<(xul_sdk_dir)/include/xulapp', '<(xul_sdk_dir)/include/xuldoc', '<(xul_sdk_dir)/include/xulrunner', '<(xul_sdk_dir)/include/xultmpl', '<(xul_sdk_dir)/include/zipwriter', '<(xul_sdk_dir)/include/zlib', '<(xul_sdk_dir)/sdk/include', ], 'conditions': [ ['OS=="win"', { 'python': [ '<(DEPTH)\\third_party\\python_24\\setup_env.bat && python' ], }, { # OS != win 'python': [ 'python' ], }], ], }, 'includes': [ '../build/common.gypi', ], 'target_defaults': { 'dependencies': [ '../chrome/chrome.gyp:chrome_resources', '../chrome/chrome.gyp:chrome_strings', '../chrome/chrome.gyp:theme_resources', '../skia/skia.gyp:skia', '../third_party/npapi/npapi.gyp:npapi', ], 'include_dirs': [ # all our own includes are relative to src/ '..', ], }, 'targets': [ { # TODO(slightlyoff): de-win23-ify 'target_name': 'xulrunner_sdk', 'type': 'none', 'conditions': [ ['OS=="win"', { 'direct_dependent_settings': { 'include_dirs': [ '<@(xul_include_directories)', ], 'libraries': [ '../third_party/xulrunner-sdk/win/lib/xpcomglue_s.lib', '../third_party/xulrunner-sdk/win/lib/xpcom.lib', '../third_party/xulrunner-sdk/win/lib/nspr4.lib', ], }, },], ], }, { # TODO(slightlyoff): de-win32-ify # # build the base_noicu.lib. 'target_name': 'base_noicu', 'type': 'none', 'dependencies': [ '../base/base.gyp:base', ], 'actions': [ { 'action_name': 'combine_libs', 'msvs_cygwin_shell': 0, 'inputs': [ '<(PRODUCT_DIR)/lib/base.lib', ], 'outputs': [ '<(PRODUCT_DIR)/lib/base_noicu.lib', ], 'action': [ '<@(python)', 'combine_libs.py', '-o <(_outputs)', '-r (icu_|_icu.obj)', '<@(_inputs)'], }, ], 'direct_dependent_settings': { # linker_settings 'libraries': [ '<(PRODUCT_DIR)/lib/base_noicu.lib', ], }, }, { 'target_name': 'chrome_frame_unittests', 'type': 'executable', 'dependencies': [ '../build/temp_gyp/googleurl.gyp:googleurl', '../chrome/chrome.gyp:common', '../chrome/chrome.gyp:utility', '../testing/gmock.gyp:gmock', '../testing/gtest.gyp:gtest', 'base_noicu', 'chrome_frame_npapi', 'chrome_frame_strings', 'xulrunner_sdk', ], 'sources': [ 'chrome_frame_npapi_unittest.cc', 'chrome_frame_unittest_main.cc', 'chrome_launcher_unittest.cc', 'unittest_precompile.h', 'unittest_precompile.cc', 'urlmon_upload_data_stream.cc', 'urlmon_upload_data_stream_unittest.cc', 'chrome_frame_histograms.h', 'chrome_frame_histograms.cc', ], 'include_dirs': [ # To allow including "chrome_tab.h" '<(INTERMEDIATE_DIR)', ], 'resource_include_dirs': [ '<(INTERMEDIATE_DIR)', ], 'conditions': [ ['OS=="win"', { 'msvs_settings': { 'VCLinkerTool': { 'DelayLoadDLLs': ['xpcom.dll', 'nspr4.dll'], }, }, 'sources': [ '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_frame_resources.rc', '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_frame_strings.rc', ], 'dependencies': [ # TODO(slightlyoff): Get automation targets working on OS X '../chrome/chrome.gyp:automation', '../chrome/installer/installer.gyp:installer_util', '../google_update/google_update.gyp:google_update', ] }], ], }, { 'target_name': 'chrome_frame_tests', 'type': 'executable', 'dependencies': [ # 'base_noicu', '../build/temp_gyp/googleurl.gyp:googleurl', '../chrome/chrome.gyp:common', '../chrome/chrome.gyp:utility', '../testing/gmock.gyp:gmock', '../testing/gtest.gyp:gtest', '../third_party/libxml/libxml.gyp:libxml', '../third_party/libxslt/libxslt.gyp:libxslt', 'chrome_frame_strings', 'chrome_frame_npapi', # 'npchrome_tab', 'xulrunner_sdk', ], 'sources': [ '../base/test_suite.h', 'test/chrome_frame_test_utils.cc', 'test/chrome_frame_test_utils.h', 'test/chrome_frame_automation_mock.cc', 'test/chrome_frame_automation_mock.h', 'test/chrome_frame_unittests.cc', 'test/chrome_frame_unittests.h', 'test/com_message_event_unittest.cc', 'test/function_stub_unittest.cc', 'test/html_util_unittests.cc', 'test/http_negotiate_unittest.cc', 'test/http_server.cc', 'test/http_server.h', 'test/run_all_unittests.cc', 'test/test_server.cc', 'test/test_server.h', 'test/test_server_test.cc', 'test/util_unittests.cc', 'chrome_frame_automation.cc', 'chrome_frame_histograms.h', 'chrome_frame_histograms.cc', 'chrome_tab.h', 'chrome_tab.idl', 'com_message_event.cc', 'html_utils.cc', 'http_negotiate.h', 'http_negotiate.cc', 'sync_msg_reply_dispatcher.cc', 'sync_msg_reply_dispatcher.h', 'test_utils.cc', 'test_utils.h', 'urlmon_upload_data_stream.h', 'urlmon_upload_data_stream.cc', 'urlmon_url_request.h', 'urlmon_url_request.cc', 'utils.cc', 'utils.h', 'vtable_patch_manager.h', 'vtable_patch_manager.cc' ], 'include_dirs': [ '<@(xul_include_directories)', '../chrome/third_party/wtl/include', # To allow including "chrome_tab.h" '<(INTERMEDIATE_DIR)', ], 'resource_include_dirs': [ '<(INTERMEDIATE_DIR)', ], 'conditions': [ ['OS=="win"', { 'msvs_settings': { 'VCLinkerTool': { 'DelayLoadDLLs': ['xpcom.dll', 'nspr4.dll'], }, }, 'sources': [ '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_frame_resources.rc', '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_frame_strings.rc', ], 'dependencies': [ '../chrome/chrome.gyp:automation', '../chrome/installer/installer.gyp:installer_util', '../google_update/google_update.gyp:google_update', ] }], ], }, { 'target_name': 'chrome_frame_perftests', 'type': 'executable', 'dependencies': [ '../base/base.gyp:base_i18n', '../base/base.gyp:test_support_base', '../build/temp_gyp/googleurl.gyp:googleurl', '../chrome/chrome.gyp:common', '../chrome/chrome.gyp:utility', '../testing/gmock.gyp:gmock', '../testing/gtest.gyp:gtest', '../third_party/libxml/libxml.gyp:libxml', '../third_party/libxslt/libxslt.gyp:libxslt', 'chrome_frame_strings', 'xulrunner_sdk', ], 'sources': [ '../base/perf_test_suite.h', '../base/perftimer.cc', '../base/test/test_file_util.h', '../chrome/test/chrome_process_util.cc', '../chrome/test/chrome_process_util.h', '../chrome/test/ui/ui_test.cc', 'chrome_tab.h', 'chrome_tab.idl', 'html_utils.cc', 'test/perf/chrome_frame_perftest.cc', 'test/perf/chrome_frame_perftest.h', 'test/perf/run_all.cc', 'test/perf/silverlight.cc', 'test_utils.cc', 'test_utils.h', 'utils.cc', 'utils.h', ], 'include_dirs': [ '<@(xul_include_directories)', '../chrome/third_party/wtl/include', # To allow including "chrome_tab.h" '<(INTERMEDIATE_DIR)', ], 'conditions': [ ['OS=="win"', { 'dependencies': [ '../chrome/chrome.gyp:automation', '../breakpad/breakpad.gyp:breakpad_handler', '../chrome/installer/installer.gyp:installer_util', '../google_update/google_update.gyp:google_update', '../chrome/installer/installer.gyp:installer_util', ], 'sources': [ '../chrome/test/chrome_process_util_win.cc', '../base/test/test_file_util_win.cc', ] }], ], }, { 'target_name': 'chrome_frame_net_tests', 'type': 'executable', 'dependencies': [ '../base/base.gyp:test_support_base', '../chrome/chrome.gyp:browser', '../chrome/chrome.gyp:chrome_dll_version', '../chrome/chrome.gyp:chrome_resources', '../chrome/chrome.gyp:debugger', '../chrome/chrome.gyp:renderer', '../chrome/chrome.gyp:syncapi', '../skia/skia.gyp:skia', '../testing/gtest.gyp:gtest', '../third_party/icu/icu.gyp:icui18n', '../third_party/icu/icu.gyp:icuuc', 'chrome_frame_npapi', ], 'sources': [ '../net/url_request/url_request_unittest.cc', '../net/url_request/url_request_unittest.h', 'test/chrome_frame_test_utils.cc', 'test/chrome_frame_test_utils.h', 'test/test_server.cc', 'test/test_server.h', 'test/net/dialog_watchdog.cc', 'test/net/dialog_watchdog.h', 'test/net/fake_external_tab.cc', 'test/net/fake_external_tab.h', 'test/net/process_singleton_subclass.cc', 'test/net/process_singleton_subclass.h', 'test/net/test_automation_provider.cc', 'test/net/test_automation_provider.h', 'test/net/test_automation_resource_message_filter.cc', 'test/net/test_automation_resource_message_filter.h', ], 'include_dirs': [ # To allow including "chrome_tab.h" '<(INTERMEDIATE_DIR)', ], 'conditions': [ ['OS=="win"', { 'dependencies': [ '../chrome/chrome.gyp:automation', '../breakpad/breakpad.gyp:breakpad_handler', '../chrome/installer/installer.gyp:installer_util', '../google_update/google_update.gyp:google_update', '../chrome/installer/installer.gyp:installer_util', ] }], ], }, { 'target_name': 'chrome_frame_npapi', 'type': 'static_library', 'dependencies': [ 'chrome_frame_strings', '../chrome/chrome.gyp:common', 'xulrunner_sdk', ], 'sources': [ 'chrome_frame_automation.cc', 'chrome_frame_automation.h', 'chrome_frame_delegate.cc', 'chrome_frame_delegate.h', 'chrome_frame_plugin.h', 'chrome_frame_npapi.cc', 'chrome_frame_npapi.h', 'chrome_launcher.cc', 'chrome_launcher.h', 'html_utils.cc', 'html_utils.h', 'np_browser_functions.cc', 'np_browser_functions.h', 'np_event_listener.cc', 'np_event_listener.h', 'np_proxy_service.cc', 'np_proxy_service.h', 'npapi_url_request.cc', 'npapi_url_request.h', 'ns_associate_iid_win.h', 'ns_isupports_impl.h', 'plugin_url_request.cc', 'plugin_url_request.h', 'scoped_ns_ptr_win.h', 'sync_msg_reply_dispatcher.cc', 'sync_msg_reply_dispatcher.h', 'utils.cc', 'utils.h', ], }, { 'target_name': 'chrome_launcher', 'type': 'executable', 'msvs_guid': 'B7E540C1-49D9-4350-ACBC-FB8306316D16', 'dependencies': [], 'sources': [ 'chrome_launcher_main.cc', ], 'msvs_settings': { 'VCLinkerTool': { 'OutputFile': '$(OutDir)\\servers\\$(ProjectName).exe', # Set /SUBSYSTEM:WINDOWS since this is not a command-line program. 'SubSystem': '2', # We're going for minimal size, so no standard library (in release # builds). 'IgnoreAllDefaultLibraries': "true", }, 'VCCLCompilerTool': { # Requires standard library, so disable it. 'BufferSecurityCheck': "false", }, }, 'configurations': { # Bring back the standard library in debug buidls. 'Debug': { 'msvs_settings': { 'VCLinkerTool': { 'IgnoreAllDefaultLibraries': "false", }, }, }, }, }, { 'target_name': 'chrome_frame_strings', 'type': 'none', 'rules': [ { 'rule_name': 'grit', 'extension': 'grd', 'inputs': [ '../tools/grit/grit.py', ], 'variables': { 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome_frame', }, 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/grit/<(RULE_INPUT_ROOT).h', '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/<(RULE_INPUT_ROOT).pak', ], 'action': ['python', '<@(_inputs)', '-i', '<(RULE_INPUT_PATH)', 'build', '-o', '<(grit_out_dir)' ], 'message': 'Generating resources from <(RULE_INPUT_PATH)', }, ], 'sources': [ # Localizable resources. 'resources/chrome_frame_strings.grd', 'resources/chrome_frame_resources.grd', ], 'direct_dependent_settings': { 'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/chrome_frame', ], }, 'conditions': [ ['OS=="win"', { 'dependencies': ['../build/win/system.gyp:cygwin'], }], ], }, { 'target_name': 'npchrome_tab', 'type': 'shared_library', 'msvs_guid': 'E3DE7E63-D3B6-4A9F-BCC4-5C8169E9C9F2', 'dependencies': [ 'base_noicu', 'chrome_frame_npapi', 'chrome_frame_strings', 'chrome_launcher', 'xulrunner_sdk', '../chrome/chrome.gyp:common', '../chrome/chrome.gyp:utility', '../build/temp_gyp/googleurl.gyp:googleurl', # FIXME(slightlyoff): # gigantic hack to get these to build from main Chrome sln. 'chrome_frame_perftests', 'chrome_frame_tests', 'chrome_frame_unittests', 'chrome_frame_net_tests', ], 'sources': [ 'bho.cc', 'bho.h', 'bho.rgs', 'chrome_active_document.cc', 'chrome_active_document.h', 'chrome_active_document.rgs', 'chrome_frame_activex.cc', 'chrome_frame_activex.h', 'chrome_frame_activex_base.h', 'chrome_frame_activex.rgs', 'chrome_frame_npapi.rgs', 'chrome_frame_npapi_entrypoints.cc', 'chrome_frame_reporting.cc', 'chrome_frame_reporting.h', 'chrome_protocol.cc', 'chrome_protocol.h', 'chrome_protocol.rgs', 'chrome_tab.cc', 'chrome_tab.def', 'chrome_tab.h', 'chrome_tab.idl', # FIXME(slightlyoff): For chrome_tab.tlb. Giant hack until we can # figure out something more gyp-ish. 'resources/tlb_resource.rc', 'chrome_tab.rgs', 'chrome_tab_version.rc.version', 'com_message_event.cc', 'com_message_event.h', 'com_type_info_holder.cc', 'com_type_info_holder.h', 'ff_30_privilege_check.cc', 'ff_privilege_check.h', 'find_dialog.cc', 'find_dialog.h', 'function_stub.h', 'http_negotiate.h', 'http_negotiate.cc', 'iids.cc', 'in_place_menu.h', 'ole_document_impl.h', 'protocol_sink_wrap.cc', 'protocol_sink_wrap.h', 'resource.h', 'script_security_manager.h', 'sync_msg_reply_dispatcher.cc', 'sync_msg_reply_dispatcher.h', 'extra_system_apis.h', 'urlmon_url_request.cc', 'urlmon_url_request.h', 'urlmon_upload_data_stream.cc', 'urlmon_upload_data_stream.h', 'vtable_patch_manager.cc', 'vtable_patch_manager.h', 'chrome_frame_histograms.h', 'chrome_frame_histograms.cc', ], 'include_dirs': [ # To allow including "chrome_tab.h" '<(INTERMEDIATE_DIR)', '<(INTERMEDIATE_DIR)/../npchrome_tab', ], 'conditions': [ ['OS=="win"', { # NOTE(slightlyoff): # this is a fix for the include dirs length limit on the resource # compiler, tickled by the xul_include_dirs variable 'resource_include_dirs': [ '<(INTERMEDIATE_DIR)' ], 'sources': [ '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_frame_resources.rc', '<(SHARED_INTERMEDIATE_DIR)/chrome_frame/chrome_frame_strings.rc', ], 'dependencies': [ '../breakpad/breakpad.gyp:breakpad_handler', '../chrome/chrome.gyp:automation', # Make the archive build happy. '../chrome/chrome.gyp:syncapi', # Installer '../chrome/installer/installer.gyp:installer_util', '../google_update/google_update.gyp:google_update', # Crash Reporting 'crash_reporting/crash_reporting.gyp:crash_report', 'crash_reporting/crash_reporting.gyp:vectored_handler_tests', ], 'msvs_settings': { 'VCLinkerTool': { 'OutputFile': '$(OutDir)\\servers\\$(ProjectName).dll', 'DelayLoadDLLs': ['xpcom.dll', 'nspr4.dll'], 'BaseAddress': '0x33000000', # Set /SUBSYSTEM:WINDOWS (for consistency). 'SubSystem': '2', }, }, }], ], 'rules': [ # Borrowed from chrome.gyp:chrome_dll_version, branding references # removed { 'rule_name': 'version', 'extension': 'version', 'variables': { 'version_py': '../chrome/tools/build/version.py', 'version_path': '../chrome/VERSION', 'template_input_path': 'chrome_tab_version.rc.version', }, 'inputs': [ '<(template_input_path)', '<(version_path)', ], 'outputs': [ 'chrome_tab_version.rc', ], 'action': [ 'python', '<(version_py)', '-f', '<(version_path)', '<(template_input_path)', '<@(_outputs)', ], 'process_outputs_as_sources': 1, 'message': 'Generating version information in <(_outputs)' }, ], }, ], } # vim: shiftwidth=2:et:ai:tabstop=2 # Local Variables: # tab-width:2 # indent-tabs-mode:nil # End: # vim: set expandtab tabstop=2 shiftwidth=2: