Chromium Code Reviews| 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"', { |