New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 608045 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

cast_receiver.lib and cast_sender.lib are always unbuilt in Windows gn builds

Project Member Reported by brucedaw...@chromium.org, Apr 29 2016

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",
  ]
}

 
Labels: -Pri-3 Proj-GN-Migration Pri-1
These should just be changed to source_sets (probably in all cases, not just the empty ones).

Comment 3 by thakis@chromium.org, 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?

Comment 4 by m...@chromium.org, May 16 2016

Labels: Needs-Feedback
Owner: brucedaw...@chromium.org
Status: Assigned (was: Untriaged)
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.
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.

Comment 6 by m...@chromium.org, May 17 2016

Status: Fixed (was: Assigned)
Thanks for the explanation.

Ok. Sounds like everything is working just as everyone wants it to. :)

Marking fixed...

Comment 7 Deleted

Sign in to add a comment