Shared libraries have an optimization for linking where the build dependency is on the .lib/.TOC file that only changes when the exports are changed. This prevents unnecessary rebuilds of dependent executables and shared libraries, which don't need to be relinked unless the shared library exports change.
But GN also applies this rule to actions depending on the shared library. An example is remoting_me2me_host_archive which depends on the remoting_core shared library. The action should be re-run any time the shared library is changed, not just when its exports change.
So basically actions should depend on all outputs of a shared library (or maybe the first one?), not just the "depend_output" listed in the tool.
Comment 1 by brettw@chromium.org
, Aug 2 2016