Convert absl_source_sets to cc_library_static instead of filegroup

Converting GN's absl_source_sets to filegroups causes them to be
recompiled in every module that depends on them, 424 times for
absl/strings.  Convert them to cc_library_static instead so they
only have to be compiled once per variant.  This reduces the size
of the intermediates directory for external/webrtc from 26GB to 3.6GB.

Also remove the dependencies from cc_library_static modules, they
don't do anything and just increase the complexity in Soong's module
graph.  All the transitive dependencies are already collected into the
final libwebrtc and webrtc_audio_processing modules.

Bug: 293194014
Test: m libwebrtc
Change-Id: Iebbafa52fa72364a70f4f35656af17a63c88b860
2 files changed
tree: dbd757aa2906eda2e5ac0f0d5f25be1b39f6674e
  1. android_tools/
  2. api/
  3. audio/
  4. base/
  5. build_overrides/
  6. call/
  7. common_audio/
  8. common_video/
  9. data/
  10. docs/
  11. examples/
  12. experiments/
  13. g3doc/
  14. infra/
  15. logging/
  16. media/
  17. modules/
  18. net/
  19. p2p/
  20. pc/
  21. resources/
  22. rtc_base/
  23. rtc_tools/
  24. sdk/
  25. stats/
  26. system_wrappers/
  27. test/
  28. third_party/
  29. tools_webrtc/
  30. video/
  31. webrtc/
  32. .clang-format
  33. .git-blame-ignore-revs
  34. .gitignore
  35. .gn
  36. .mailmap
  37. .style.yapf
  38. .vpython
  39. .vpython3
  40. Android.bp
  41. Android.mk
  42. AUTHORS
  43. BUILD.gn
  44. CODE_OF_CONDUCT.md
  45. codereview.settings
  46. DEPS
  47. DIR_METADATA
  48. ENG_REVIEW_OWNERS.webrtc
  49. g3doc.lua
  50. LICENSE
  51. license_template.txt
  52. METADATA
  53. MODULE_LICENSE_BSD
  54. native-api.md
  55. OWNERS
  56. OWNERS.webrtc
  57. OWNERS_INFRA.webrtc
  58. PATENTS
  59. PRESUBMIT.py
  60. presubmit_test.py
  61. presubmit_test_mocks.py
  62. pylintrc
  63. README.chromium
  64. README.md
  65. WATCHLISTS
  66. webrtc.gni
  67. webrtc_lib_link_test.cc
  68. whitespace.txt
README.md

WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.

The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.

Development

See here for instructions on how to get started developing with the native code.

Authoritative list of directories that contain the native API header files.

More info