Gyp build not processing hard dependency correctly |
|||
Issue descriptionSee this build flake: https://build.chromium.org/p/chromium/builders/Win/builds/42017 FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.FontTestHelpers.obj.rsp /c ..\..\third_party\WebKit\Source\platform\testing\FontTestHelpers.cpp /Foobj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.FontTestHelpers.obj /Fdobj\third_party\WebKit\Source\platform\blink_platform_test_support.cc.pdb c:\b\build\slave\win\build\src\third_party\webkit\source\platform\fonts\fontdescription.h(28): fatal error C1083: Cannot open include file: 'platform/FontFamilyNames.h': No such file or directory FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.TestPaintArtifact.obj.rsp /c ..\..\third_party\WebKit\Source\platform\testing\TestPaintArtifact.cpp /Foobj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.TestPaintArtifact.obj /Fdobj\third_party\WebKit\Source\platform\blink_platform_test_support.cc.pdb c:\b\build\slave\win\build\src\third_party\webkit\source\platform\graphics\paint\drawingdisplayitem.h(9): fatal error C1083: Cannot open include file: 'platform/RuntimeEnabledFeatures.h': No such file or directory ninja: build stopped: subcommand failed. I'm confused as to why this is failing, since blink_platform_test_support target (https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/platform/blink_platform_tests.gyp&l=113) depends on blink_platform.gyp:blink_platform. That target (https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/platform/blink_platform.gyp&l=154) depends on platform_generated.gyp:make_platform_generated. That target (https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/platform/platform_generated.gyp&l=52) has 'hard_dependency': 1 set. AFAIK in gyp, that should be enough to ensure that blink_platform_test_support.FontTestHelpers isn't build before the generated files are. Is this correct?
,
Apr 4 2016
WHOA! I was going to ask if it's not transitive; but then I thought that's a silly question because that would make it useless. hmm.
,
Apr 4 2016
So I looked into this a bit. It looks like hard_dependency would need to be added to many targets in order to make sure that all the targets that have make_platform_generated as a transitive dependency build correctly. Is this something that we want to do?
,
Apr 4 2016
Not normally, no. I would make the target that's failing depend directly on the thing generating the file.
,
Apr 5 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/64a7db80625efdcd963a090ab094aa5f85758211 commit 64a7db80625efdcd963a090ab094aa5f85758211 Author: jam <jam@chromium.org> Date: Tue Apr 05 17:28:01 2016 Fix compile flake in gyp builds inside Blink. hard_dependency=1 is not transitive, so we need to add it in some other targets to avoid targets which depend on them failing the build sometimes. BUG= 600429 Review URL: https://codereview.chromium.org/1858273002 Cr-Commit-Position: refs/heads/master@{#385209} [modify] https://crrev.com/64a7db80625efdcd963a090ab094aa5f85758211/third_party/WebKit/Source/platform/blink_platform.gyp [modify] https://crrev.com/64a7db80625efdcd963a090ab094aa5f85758211/third_party/WebKit/Source/web/web.gyp
,
Apr 5 2016
,
Apr 5 2016
|
|||
►
Sign in to add a comment |
|||
Comment 1 by brettw@chromium.org
, Apr 4 2016