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
Most of the ignored flags are no longer necessary after
I55f2bdea229cf11c21b5780b2639abb6dd7c3268. Remove anything that
doesn't affect the generated Android.bp file.
Test: android_tools/generate_android_bp.sh
Change-Id: Ib78afeb256d260f0fe765b22a33f616df4c57e2c
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
Renamed abseil modules to make them webrtc specific.
Restricted visibility of abseil modules to webrtc packages.
Bug: 171836454
Test: Builds
Change-Id: Icf24c7e3093a77dd9a26e7ec78bd531eb1ad3dec