Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(945)

Issue 1835993002: Fix mini_installer in gn component builds (Closed)

Created:
4 years, 8 months ago by brucedawson
Modified:
4 years, 8 months ago
Reviewers:
Dirk Pranke, brettw
CC:
chromium-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix mini_installer in gn component builds Due to its use of source sets the gn component mini_installer build of setup.exe creates references to six DLLs that would not be needed if linking with real .lib files (which avoid pulling in unneeded .obj files). Fixing this to not pull in those DLLs would require significant effort and would probably end up being fragile. Therefore the pragmatic fix is to just extract the six extra DLLs. This represents 22.4 MB of disk space (87% of that is from net.dll) which is not enough to matter in the context of mini_installer component builds. BUG=596885 Committed: https://crrev.com/fb41afdaca7c25eeb8e416da3f3b2d5d8f067556 Cr-Commit-Position: refs/heads/master@{#383542}

Patch Set 1 #

Total comments: 1

Patch Set 2 : Removed redundant check, and alphabetized #

Patch Set 3 : Fixed missing comma #

Unified diffs Side-by-side diffs Delta from patch set Stats (+14 lines, -3 lines) Patch
M chrome/tools/build/win/create_installer_archive.py View 1 2 1 chunk +14 lines, -3 lines 0 comments Download

Messages

Total messages: 15 (6 generated)
brucedawson
Brett/Dirk, what do you think of this solution to mini_installer in gn component builds? It ...
4 years, 8 months ago (2016-03-28 18:26:12 UTC) #3
brettw
Since this is just for archiving component builds for debug purposes, I think this solution ...
4 years, 8 months ago (2016-03-28 18:29:16 UTC) #4
brucedawson
> My brief reading of this function implies that this whole function will only get ...
4 years, 8 months ago (2016-03-28 18:37:01 UTC) #5
brettw
lgtm
4 years, 8 months ago (2016-03-28 18:58:07 UTC) #6
brucedawson
On 2016/03/28 18:58:07, brettw wrote: > lgtm Just added a missing comma (oops), now landing.
4 years, 8 months ago (2016-03-28 19:03:25 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1835993002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1835993002/40001
4 years, 8 months ago (2016-03-28 19:03:39 UTC) #10
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 8 months ago (2016-03-28 19:42:50 UTC) #12
commit-bot: I haz the power
Patchset 3 (id:??) landed as https://crrev.com/fb41afdaca7c25eeb8e416da3f3b2d5d8f067556 Cr-Commit-Position: refs/heads/master@{#383542}
4 years, 8 months ago (2016-03-28 19:45:14 UTC) #14
Dirk Pranke
4 years, 8 months ago (2016-03-28 20:03:21 UTC) #15
Message was sent while issue was closed.
lgtm. If this wasn't for something that most people don't care about (a
testing-only
build of the mini_installer), I'd be more inclined to push for the right fixes,
which
is to either split up the targets or turn them into libraries if we don't
actually
want these dependencies.

On 2016/03/28 18:26:12, brucedawson wrote:
> I remain worried about the use of source sets - similar issues could creep in
to
> code that we actually ship to customers - but that can be a separate
discussion.

There's kinda two different issues here.

The first is controlling the list of files that get shipped to customers. You're
right
to be concerned about this, however, the file lists are checked-in and need
reviews,
so I don't think we'll see changes occurring here too randomly.

The second is the general source_set vs. static_library issue, and there are
real
issues here as well, but the issues occur in both directions. If you bundle
stuff
as static_libraries, then it becomes fairly easy to create structures where you
rely on the code-stripping of static libraries in order to link; this can cause 
problems in other environments (like component builds). And, as you see,
using source_sets instead of static_libraries cause the same problem in the
opposite direction.

As a general rule of thumb, I think using source_sets instead of
static_libraries
forces you to think about the logical structure of what is getting grouped more
effectively. However, certainly some things should be libraries instead of
source_sets,
and retrofitting source_sets on top of libraries can be tricky as well.

Powered by Google App Engine
This is Rietveld 408576698