• scottmg@chromium.org's avatar
    Move startup_helper_win.cc to separate target for incremental build · c9f5110c
    scottmg@chromium.org authored
    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
    c9f5110c
content_shell.gypi 42.7 KB