The GN version of the 'mini_installer' has some unneeded dependencies |
||||
Issue descriptionI've noticed that some extra binaries get built when you build the GN version of mini_installer (it might also be the case just for the 'chrome' target): - bro.exe - desktop_wm_library.dll - mojo_runner.exe - mus_library.dll - osmesa.dll - tracing_library.dll Is there a way to look at what's the dependency chain for these targets ?
,
Jun 3 2016
Was this a component build? If so it is known and expected that many extra DLLs get added. See crbug.com/586967 and this line of code: https://cs.chromium.org/chromium/src/chrome/tools/build/win/create_installer_archive.py?q=f:create_install&sq=package:chromium&l=513 I don't know why bro.exe is getting built, but if it is now being used to compress some assets then that may be by design.
,
Jun 3 2016
Never mind. crbug.com/586967 causes DLLs to be pulled in if they exist, but it never causes them to be built.
,
Jun 4 2016
For the record, the reason why I've noticed this is because I was hitting a build warning in bro.exe (fixed in https://codereview.chromium.org/2027873006/) while making a GN build of mini_installer (args="is_official_build=true is_debug=false") and szabadka@ told me that there was no reason to build bro.exe with Chrome. I also don't think that a typical build of Chrome needs mojo_runner ?
,
Jun 6 2016
I did clean builds (rmdir /s/q out\Debug and gn clean out\Debug_gn_component) of component debug builds with gyp and gn and compared the DLLs and EXEs created. The gn builds generate 15 more DLLs and 1 more executable. The actual comparison is messier because the gn builds aren't a strict superset (renaming of outputs? Other reasons?) - the lists are attached. For executables the differences are: gyp creates nacl64.exe and wow_helper.exe that gn doesn't gn creates frame_analyzer.exe, mojo_runner.exe, and rgba_to_i420_converter.exe that gyp doesn't As of 903b1d2f36 they both create bro.exe.
,
Jun 6 2016
Thanks for looking at this ! Should we open a different bug for each of these different executables ?
,
Jun 6 2016
Probably best to keep it as one bug - the causes are likely to be related. If the actual 'correct' set of dependencies is the intersection of the gn/gyp results then we can potentially make everything faster than before which would be great.
,
Jun 21 2016
I'm guessing this doesn't need to block shipping GN; do we need to fix this before we can drop GYP?
,
Jun 21 2016
Nop, it doesn't prevent us from shipping, we should just look at this one day to improve the build time.
,
Jul 1 2016
,
Jul 3 2017
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jul 5 2017
A lot has changed since this bug was filed. bro.exe is now called brotli.exe. The other three executables are not created on a build of chrome.exe, but test_ime_driver.service.exe is built. This command gives some hints as to why brotli.exe is built: >gn path . //third_party/brotli:brotli //chrome:chrome_initial //chrome:chrome_initial --[public]--> //chrome:packed_resources --[public]--> //chrome:packed_resources_extra --[private]--> //content/browser/devtools:devtools_resources --[public]--> //content/browser/devtools:devtools_resources_grit --[private]--> //content/browser/devtools:compressed_protocol_json --[private]--> //third_party/brotli:brotli So, I guess we are compressing some .json files, which is good. I'm not sure why test_ime_driver.service.exe is being built. What am I doing wrong here? >gn path . //services/ui/ime/test_ime_driver:test_ime_driver //chrome:chrome_initial No non-data paths found between these two targets. The only one of the DLLs that were originally listed that I see being built is osmesa.dll. Note that I was building chrome.exe rather than mini_installer. I was doing a debug non-component build. |
||||
►
Sign in to add a comment |
||||
Comment 1 by sebmarchand@chromium.org
, Jun 3 2016