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
Fix generate_bp.py to automatically generate the defaults modules
based on flags that are set in all targets. Use lists instead of
sets for the flags to maintain the order they were specified in
the project*.json files as much as possible.
Test: android_tools/generate_android_bp.sh
Test: mma
Change-Id: I29e13367e8e49660edeaa6462ddbab76aa177c88
Sort the list of targets before writing them to the output, which fixes
the only place where output ordering depended on the python hash seed.
Also remove the fixed python hash seed from the script.
Test: android_tools/generate_android_bp.sh && git diff
Test: mma
Change-Id: Icfadfaaebf438d00bfef13c231fc09afda454916
The json files used to generate the Android.bp files have more flags
than those specified in the BUILD.gn and *.gni configuration files. This
change ignores the ones added by the build toolchain and keeps only
those added by the webrtc authors.
Bug: 269761242
Test: run cuttlefish in x64, build for arm64 and riscv64
Change-Id: I55f2bdea229cf11c21b5780b2639abb6dd7c3268
by making the build file generator script (mostly) architecture independent.
Bug: 269761242
Test: build x64 and arm64 locally
Change-Id: I76ea4bc0ba5e8e5c152b93cb1ad7a385c796adae
-gdwarf-aranges breaks a later linking step on riscv64 with:
ld.lld: error: out/soong/.intermediates/external/webrtc/webrtc_audio_processing/android_vendor.UpsideDownCake_riscv64_static/webrtc_audio_processing.a(audio_processing_impl.o):(.rodata.str1.1): offset is outside the section
Bug: 269343483
Test: lunch aosp_riscv64-userdebug && m libaudiopreprocessing
Change-Id: Iaf96679c3e82229adf958668f9afbdf0d4768c6b
This option is likely not really applicable for Android target builds
which are stripped / have a separate symbols output so just filter it
out. The option breaks on RISC-V due to implicit -mrelax and lack of
toolchain support:
clang++: error: -gsplit-dwarf is unsupported with RISC-V linker relaxation (-mrelax)
Bug: 266468464
Change-Id: Ibdb7bc7e08576c1096148a7a6381554888dfa6b0
For x86, x86_64, arm and arm64
Bug: 261600888
Test: build and run cuttlefish x86, x86_64 and arm64
Change-Id: I3ac4dad1ac9ec83b0e626e64715df450e8809b82
ALSA and pulseaudio are not used by either of the clients of webrtc,
remove them from the sources to avoid having to have the ALSA and
pulseaudio headers.
Bug: 190084016
Test: m USE_HOST_MUSL=true webRTC libaudiopreprocessing
Change-Id: I1e74c64a71fa54db69e7d2e9d118dfd374501cb7
aec_dump.cc was included in multiple modules, this is now fixed
Also added few more modules that are used by webrtc_audio_processing
These are necessary if some module includes "webrtc_audio_processing"
in whole_static_libs.
Bug: 173247568
Test: Builds
Change-Id: I1ba293800ad4acce07351311fa9f8b15bd1f1d0c
webrtc_audio_processing module is built with its dependencies
included as whole_static_libs, so that a single library can be
included where it is used
Bug: 169202556
Test: Builds
Change-Id: Ic6dd1b4e3a9a351c0b22663197bed77d08ff518c
Also added visibility to restrict it to audio preprocessing
and cuttlefish modules
Bug: 169202556
Test: Builds
Change-Id: Idba6a42b8f8c1a30a0320913d17e269cd6ccca7b
Renamed abseil modules to make them webrtc specific.
Restricted visibility of abseil modules to webrtc packages.
Bug: 171836454
Test: Builds
Change-Id: Icf24c7e3093a77dd9a26e7ec78bd531eb1ad3dec
Previously, we used x86-specific source files (those for sse2)
regardless of the target because x86 was the only supported host target.
This becomes a problem as we add the support for the new ARM64 host
target - linux_bionic_arm64. Now, those source files are built only when
the target architecture is x86.
Bug: 159685774
Test: HOST_CROSS_OS=linux_bionic HOST_CROSS_ARCH=arm64 m \
out/soong/host/linux_bionic-arm64/bin/webRTC
Change-Id: Id13d66ccd5ae6f8596ce32d4ccb2735856d2159a
The following are not yet available in their respective libraries so
attempts to use it in webrtc result in a call to abort():
* libvpx's CONSTRAINED_FROM_ABOVE_DROP constant
* libyuv's I010 buffers
The original webrtc project expects to have third party libraries
checked out in third_party/ and base/third_party/. Added some headers
in those directories with a single line including the right header from
external/<library>. Updated .gitignore to keep track of said headers.
Bug: 153469641
Test: mm, also built cuttlefish using this library and ran it locally
Change-Id: I2d596942e34093dccc65d4b7b8249b6afc14d31f
Merged-In: I2d596942e34093dccc65d4b7b8249b6afc14d31f