cast_receiver.lib and cast_sender.lib are always unbuilt in Windows gn builds |
|||
Issue description
Full gn builds on Windows (component builds at least) never build cast_receiver and cast_sender so their two build steps run every time, with -d explain saying that this is because the expected .lib files don't exist.
The definitions in cast\BUILD.gn are simply:
static_library("cast_sender") {
deps = [
":sender",
]
}
static_library("cast_receiver") {
deps = [
":receiver",
]
}
,
May 2 2016
These should just be changed to source_sets (probably in all cases, not just the empty ones).
,
May 16 2016
No, they're supposed to be redistributable. Did https://codereview.chromium.org/1976333002/diff/40001/media/cast/BUILD.gn happen to fix this?
,
May 16 2016
brucedawson: Questions about original post: 1. What exactly is a "full GN build?" Is it a build of all targets, or only those reachable from some root target? 2. I'm not sure exactly what this means: "with -d explain saying that this is because the expected .lib files don't exist." Ideally, I'd like the bots to build these targets as a sanity-check (i.e., make sure they compile and link), even if the resulting binary is not run/used in future bot steps. FYI--There's a project in my team's queue to improve the header/build/link process around this code. We'll be revisiting our approach here.
,
May 17 2016
crrev.com/1976333002, mentioned in comment #3, does indeed fix this. The remaining comments are for the historical record: The "full GN build" was: "ninja -C out\Debug_gn_component" - no build target specified. When I followed my full build with "ninja -d explain -C out\Debug_gn_component" then the output was: ninja: Entering directory `out\Debug_gn_component' ninja explain: output obj/media/cast/cast_receiver.lib doesn't exist ninja explain: obj/media/cast/cast_receiver.lib is dirty ninja explain: output obj/media/cast/cast_sender.lib doesn't exist ninja explain: obj/media/cast/cast_sender.lib is dirty [0 processes, 2/2 @ 24.7/s : 0.081s ] LIB obj/media/cast/cast_sender.lib That is, the reason that ninja keeps trying to build cast_receiver.lib and cast_sender.lib is because it always finds that they have not been created and therefore believes that it must run their build steps. But with CL 1976333002 applied the problem is resolved - both .lib files (34 MB each) are created.
,
May 17 2016
Thanks for the explanation. Ok. Sounds like everything is working just as everyone wants it to. :) Marking fixed... |
|||
►
Sign in to add a comment |
|||
Comment 1 by brucedaw...@chromium.org
, Apr 29 2016