Index: chrome/chrome_dll.gypi |
diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi |
index 3d4119a36ba6de532ff3dc97dcf325362d455bb4..d1daed8e00eb25310102e685870fd84b417a2d64 100644 |
--- a/chrome/chrome_dll.gypi |
+++ b/chrome/chrome_dll.gypi |
@@ -21,6 +21,11 @@ |
], |
}, |
}], # OS=="mac" |
+ ['chrome_split_dll==1', { |
+ 'dependencies': [ |
+ 'chrome_child_dll', |
+ ], |
+ }], |
['incremental_chrome_dll==1', { |
# Linking to a different directory and then hardlinking back |
# to OutDir is a workaround to avoid having the .ilk for |
@@ -297,7 +302,238 @@ |
], # conditions |
}], # OS=="mac" |
], # conditions |
- }, # target chrome_dll |
+ }, # target chrome_main_dll |
+ { |
+ 'target_name': 'chrome_child_dll', |
+ 'type': 'shared_library', |
+ 'variables': { |
+ 'enable_wexit_time_destructors': 1, |
+ }, |
+ 'dependencies': [ |
+ '<@(chromium_dependencies)', |
+ 'app/policy/cloud_policy_codegen.gyp:policy', |
+ ], |
+ 'conditions': [ |
+ ['use_aura==1', { |
+ 'dependencies': [ |
+ '../ui/compositor/compositor.gyp:compositor', |
+ ], |
+ }], |
+ ['use_ash==1', { |
+ 'sources': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/ash/ash_resources/ash_wallpaper_resources.rc', |
+ ], |
+ }], |
+ ['OS=="win" and target_arch=="ia32"', { |
+ # Add a dependency to custom import library for user32 delay |
+ # imports only in x86 builds. |
+ 'dependencies': [ |
+ 'chrome_user32_delay_imports', |
+ ], |
+ },], |
+ ['OS=="win"', { |
+ 'product_name': 'chrome_child', |
+ 'dependencies': [ |
+ # On Windows, link the dependencies (libraries) that make |
jam
2013/05/02 18:47:28
There is a lot of duplication below from above. ca
|
+ # up actual Chromium functionality into this .dll. |
+ 'chrome_dll_pdb_workaround', |
+ 'chrome_resources.gyp:chrome_resources', |
+ 'chrome_version_resources', |
+ '../chrome/chrome_resources.gyp:chrome_unscaled_resources', |
+ '../content/content.gyp:content_worker', |
+ '../crypto/crypto.gyp:crypto', |
+ '../printing/printing.gyp:printing', |
+ '../net/net.gyp:net_resources', |
+ '../third_party/cld/cld.gyp:cld', |
+ '../ui/views/views.gyp:views', |
+ '../webkit/support/webkit_support.gyp:webkit_resources', |
+ ], |
+ 'sources': [ |
+ 'app/chrome_command_ids.h', |
+ 'app/chrome_dll.rc', |
+ 'app/chrome_dll_resource.h', |
+ 'app/chrome_main.cc', |
+ 'app/chrome_main_delegate.cc', |
+ 'app/chrome_main_delegate.h', |
+ 'app/delay_load_hook_win.cc', |
+ 'app/delay_load_hook_win.h', |
+ |
+ '<(SHARED_INTERMEDIATE_DIR)/chrome_version/chrome_dll_version.rc', |
+ '../base/win/dllmain.cc', |
+ |
+ '../ui/resources/cursors/aliasb.cur', |
+ '../ui/resources/cursors/cell.cur', |
+ '../ui/resources/cursors/col_resize.cur', |
+ '../ui/resources/cursors/copy.cur', |
+ '../ui/resources/cursors/none.cur', |
+ '../ui/resources/cursors/row_resize.cur', |
+ '../ui/resources/cursors/vertical_text.cur', |
+ '../ui/resources/cursors/zoom_in.cur', |
+ '../ui/resources/cursors/zoom_out.cur', |
+ |
+ # TODO: It would be nice to have these pulled in |
+ # automatically from direct_dependent_settings in |
+ # their various targets (net.gyp:net_resources, etc.), |
+ # but that causes errors in other targets when |
+ # resulting .res files get referenced multiple times. |
+ '<(SHARED_INTERMEDIATE_DIR)/chrome/browser_resources.rc', |
+ '<(SHARED_INTERMEDIATE_DIR)/chrome/chrome_unscaled_resources.rc', |
+ '<(SHARED_INTERMEDIATE_DIR)/chrome/common_resources.rc', |
+ '<(SHARED_INTERMEDIATE_DIR)/chrome/extensions_api_resources.rc', |
+ '<(SHARED_INTERMEDIATE_DIR)/content/content_resources.rc', |
+ '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.rc', |
+ '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_unscaled_resources.rc', |
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.rc', |
+ ], |
+ 'include_dirs': [ |
+ '<(DEPTH)/third_party/wtl/include', |
+ ], |
+ 'defines': [ |
+ 'CHROME_DLL', |
+ 'BROWSER_DLL', |
+ 'RENDERER_DLL', |
+ 'PLUGIN_DLL', |
+ ], |
+ 'configurations': { |
+ 'Debug_Base': { |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ 'LinkIncremental': '<(msvs_large_module_debug_link_mode)', |
+ }, |
+ }, |
+ }, |
+ }, |
+ 'msvs_settings': { |
+ 'VCLinkerTool': { |
+ 'BaseAddress': '0x01c30000', |
+ 'ImportLibrary': '$(OutDir)\\lib\\chrome_dll.lib', |
+ # Set /SUBSYSTEM:WINDOWS for chrome.dll (for consistency). |
+ 'SubSystem': '2', |
+ 'conditions': [ |
+ ['incremental_chrome_dll==1', { |
+ 'OutputFile': '$(OutDir)\\initial\\chrome.dll', |
+ 'UseLibraryDependencyInputs': "true", |
+ }], |
+ ['target_arch=="ia32"', { |
+ # Link against the XP-constrained user32 import library |
+ # instead of the platform-SDK provided one to avoid |
+ # inadvertently taking dependencies on post-XP user32 |
+ # exports. |
+ 'AdditionalDependencies!': [ |
+ 'user32.lib', |
+ ], |
+ 'IgnoreDefaultLibraryNames': [ |
+ 'user32.lib', |
+ ], |
+ # Remove user32 delay load for chrome.dll. |
+ 'DelayLoadDLLs!': [ |
+ 'user32.dll', |
+ ], |
+ 'AdditionalDependencies': [ |
+ 'user32.winxp.lib', |
+ ], |
+ 'DelayLoadDLLs': [ |
+ 'user32-delay.dll', |
+ ], |
+ 'AdditionalLibraryDirectories': [ |
+ '<(DEPTH)/build/win/importlibs/x86', |
+ ], |
+ 'ForceSymbolReferences': [ |
+ # Force the inclusion of the delay load hook in this |
+ # binary. |
+ '_ChromeDelayLoadHook@8', |
+ ], |
+ }], |
+ ], |
+ 'DelayLoadDLLs': [ |
+ 'comdlg32.dll', |
+ 'crypt32.dll', |
+ 'cryptui.dll', |
+ 'dhcpcsvc.dll', |
+ 'imagehlp.dll', |
+ 'imm32.dll', |
+ 'iphlpapi.dll', |
+ 'setupapi.dll', |
+ 'urlmon.dll', |
+ 'winhttp.dll', |
+ 'wininet.dll', |
+ 'winspool.drv', |
+ 'ws2_32.dll', |
+ 'wsock32.dll', |
+ ], |
+ }, |
+ 'VCManifestTool': { |
+ 'AdditionalManifestFiles': '$(ProjectDir)\\app\\chrome.dll.manifest', |
+ }, |
+ }, |
+ }], # OS=="win" |
+ ['OS=="mac" and component!="shared_library"', { |
+ 'includes': [ 'chrome_dll_bundle.gypi' ], |
+ }], |
+ ['OS=="mac" and component=="shared_library"', { |
+ 'xcode_settings': { 'OTHER_LDFLAGS': [ '-Wl,-ObjC' ], }, |
+ }], |
+ ['OS=="mac"', { |
+ 'xcode_settings': { |
+ # Define the order of symbols within the framework. This |
+ # sets -order_file. |
+ 'ORDER_FILE': 'app/framework.order', |
+ }, |
+ 'sources': [ |
+ 'app/chrome_command_ids.h', |
+ 'app/chrome_dll_resource.h', |
+ 'app/chrome_main.cc', |
+ 'app/chrome_main_delegate.cc', |
+ 'app/chrome_main_delegate.h', |
+ 'app/chrome_main_app_mode_mac.mm', |
+ 'app/chrome_main_mac.mm', |
+ 'app/chrome_main_mac.h', |
+ ], |
+ 'include_dirs': [ |
+ '<(grit_out_dir)', |
+ ], |
+ 'postbuilds': [ |
+ { |
+ # This step causes an error to be raised if the .order file |
+ # does not account for all global text symbols. It |
+ # validates the completeness of the .order file. |
+ 'postbuild_name': 'Verify global text symbol order', |
+ 'variables': { |
+ 'verify_order_path': 'tools/build/mac/verify_order', |
+ }, |
+ 'action': [ |
+ '<(verify_order_path)', |
+ '_ChromeMain', |
+ '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}', |
+ ], |
+ }, |
+ ], |
+ 'conditions': [ |
+ ['mac_breakpad_compiled_in==1', { |
+ 'dependencies': [ |
+ '../breakpad/breakpad.gyp:breakpad', |
+ 'app/policy/cloud_policy_codegen.gyp:policy', |
+ ], |
+ 'sources': [ |
+ 'app/breakpad_mac.mm', |
+ 'app/breakpad_mac.h', |
+ ], |
+ }, { # else: mac_breakpad_compiled_in!=1 |
+ # No Breakpad, put in the stubs. |
+ 'sources': [ |
+ 'app/breakpad_mac_stubs.mm', |
+ 'app/breakpad_mac.h', |
+ ], |
+ }], # mac_breakpad_compiled_in |
+ ['internal_pdf', { |
+ 'dependencies': [ |
+ '../pdf/pdf.gyp:pdf', |
+ ], |
+ }], |
+ ], # conditions |
+ }], # OS=="mac" |
+ ], # conditions |
+ }, # target chrome_child_dll |
], # targets |
}], # OS=="mac" or OS=="win" |
['OS=="win"', { |