From c9f5110c17265ccad812ee66777fb2bc539b18c2 Mon Sep 17 00:00:00 2001
From: "scottmg@chromium.org"
 <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Date: Fri, 22 Aug 2014 00:06:22 +0000
Subject: Move startup_helper_win.cc to separate target for incremental build

Currently, the .cc is included in multiple targets. In incremental builds this results in errors like:

[609->8104/8713 ~0] LINK_EMBED unit_tests.exe
FAILED: d:\src\depot_tools\python276_bin\python.exe gyp-win-tool link-with-manifests environment.x86 True unit_tests.exe "d:\src\depot_tools\python276_bin\python.exe gyp-win-tool link-wrapper environment.x86 False link.exe /nologo /OUT:unit_tests.exe @unit_tests.exe.rsp" 1 mt.exe rc.exe "obj\chrome\unit_tests.unit_tests.exe.intermediate.manifest" obj\chrome\unit_tests.unit_tests.exe.generated.manifest ..\..\build\win\compatibility.manifest
content_app_both.startup_helper_win.obj : error LNK2005: "void __cdecl content::InitializeSandboxInfo(struct sandbox::SandboxInterfaceInfo *)" (?InitializeSandboxInfo@content@@YAXPAUSandboxInterfaceInfo@sandbox@@@Z) already defined in test_support_content.startup_helper_win.obj
content_app_both.startup_helper_win.obj : error LNK2005: "void __cdecl `anonymous namespace'::InvalidParameter(wchar_t const *,wchar_t const *,wchar_t const *,unsigned int,unsigned int)" (?InvalidParameter@?A0xc496daa2@@YAXPB_W00II@Z) already defined in test_support_content.startup_helper_win.obj
content_app_both.startup_helper_win.obj : error LNK2005: "void __cdecl `anonymous namespace'::PureCall(void)" (?PureCall@?A0xc496daa2@@YAXXZ) already defined in test_support_content.startup_helper_win.obj
content_app_both.startup_helper_win.obj : error LNK2005: "void __cdecl content::RegisterInvalidParamHandler(void)" (?RegisterInvalidParamHandler@content@@YAXXZ) already defined in test_support_content.startup_helper_win.obj
content_app_both.startup_helper_win.obj : error LNK2005: "void __cdecl content::SetupCRT(class base::CommandLine const &)" (?SetupCRT@content@@YAXABVCommandLine@base@@@Z) already defined in test_support_content.startup_helper_win.obj
unit_tests.exe : fatal error LNK1169: one or more multiply defined symbols found

when incremental_chrome_dll=1 used in Release build.

By putting the .cc in a static_library target and depending on it as necessary, rather than including the .cc into multiple places, this is avoided.

R=jam@chromium.org
TBR=sky@chromium.org
BUG=404809

Review URL: https://codereview.chromium.org/470523005

Cr-Commit-Position: refs/heads/master@{#291256}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291256 0039d316-1c4b-4281-b951-d872f2087c98
---
 ash/ash.gyp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

(limited to 'ash')

diff --git a/ash/ash.gyp b/ash/ash.gyp
index 6c6b8a3..5e8383e 100644
--- a/ash/ash.gyp
+++ b/ash/ash.gyp
@@ -715,7 +715,6 @@
       'test/ui_controls_factory_ash.h',
     ],
     'ash_shell_lib_sources': [
-      '../content/app/startup_helper_win.cc',
       '../ui/views/test/test_views_delegate_aura.cc',
       'shell/app_list.cc',
       'shell/bubble.cc',
@@ -1199,6 +1198,13 @@
       'sources': [
         '<@(ash_shell_lib_sources)',
       ],
+      'conditions': [
+        ['OS=="win"', {
+          'dependencies': [
+            '../content/content.gyp:content_startup_helper_win',
+          ],
+        }],
+      ],
     },
     {
       # GN version: //ash:ash_shell
-- 
cgit v1.1