This was not useful for the cronet build, as we have not remapped
third_party deps into //gn (unlike perfetto).
We probably do want something similar for builtin_deps (like pass
builtin_deps into the GnParser constructor) to prevent static_library
dependencies to circumvent replaced dependencies via builtin_deps.
Test: //components/cronet/android:cronet
Change-Id: I77ed99eb14618a478281b9be025cf9d384066ddb
This is to get ready for removing the toolchain from Target names.
Test: //components/cronet/android:cronet
Change-Id: I0d7d6ae286c2e5c493e7bb565a4943be6f4c5b98
Eventually, this will lead to support for passing in different gn desc
files.
Test: //components/cronet/android:cronet
Change-Id: I6e1f7ee51f9819969b0bef8da7a1a21abbccabc8
To support parsing multiple gn desc files for different architectures,
the process of parsing and retrieving Targets needs to be split in two.
Test: //components/cronet/android:cronet
Change-Id: Ib94cbc18b9b73b17942a71289ef86f69d4e36c5f
There were some flaws in the previous logic. Dependencies need to be
bubbled up for all targets, but only static_libs should be added to
them.
Test: update_results.sh
Change-Id: I98025a8a0720d34bc47a820bf45118c06acd64a0
Soong explicitly requires to list all static libraries, including static
libraries that are linked by a dependency.
What is interesting is that this change seemed to have introduced new
targets?! Will have to check if that's correct, but at first glance it
seems to make sense.
Test: //components/cronet/android:cronet
Change-Id: I0e6e9a760dd0a4ebc5ce50f5dabc02458ff488a8
--proto_path specify the directory in which to search for imports.
net_quic_proto and metrics_proto have files that import other files.
Get proper --proto_path from the args in the desc.
Also, update --cpp_out to follow --proto_path change.
There are 6 targets which use protoc_wrapper.py in the dependency
from cronet_package_android.
It is confirmed that they could build with this commit.
Test: m cronet_aml_net_isolation_info_proto_gen
(//net:isolation_info_proto)
Test: m cronet_aml_net_net_nqe_proto_gen
(//net:net_nqe_proto)
Test: m cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen
(//net/third_party/quiche:net_quic_test_tools_proto)
Test: m cronet_aml_net_cert_root_store_proto_full_gen
(//net/cert:root_store_proto_full)
Test: m cronet_aml_net_third_party_quiche_net_quic_proto_gen
(//net/third_party/quiche:net_quic_proto)
Test: m cronet_aml_third_party_metrics_proto_metrics_proto_gen
(//third_party/metrics_proto:metrics_proto)
Change-Id: Id19e956eb0eb3fb402f8aaa9eb94734b731c74fd
GnUtils and gen_android_bp already have support for proto targets.
It looks pretty generic and quite a bit more evolved than what we have
done so far.
Test: //net:net
Change-Id: I1ca0d004650b4dc5e09fae4a0f4159699b4de96b
The current plan is to write a lightweight wrapper around Cronet that
serves as the Android API surface. If that holds true, we might get away
with putting all .java sources in a single jar. Otherwise, the API will
have to be put in a separate source jar.
Test: //net:net
Change-Id: I2bef893ebdf0a4390dfb634e715c60ccd94dc1fb
According to the docs, java target names are (somewhat) guaranteed to end in
_java. There are some other variations that are allowlisted, though it
is currently unclear if those need to be supported for our purposes.
Test: //net:net
Change-Id: I0647dac6a078790e23509d437628aed0d8d62f77
gn_utils does not have enough information to fix the args, so it should
not touch them.
Test: //base:base
Change-Id: Id813a255fcf3694448eae2bb51637b10fc8a0297
These will be piped into a script, so it is important that both single
and double quotes are properly escaped.
Test: //base:base
Change-Id: I0123e09a698418f222f51b0326608d4e97374928
*Very* basic GnParser support for copy and action_foreach targets.
Copy rules are not very common, for cronet package only two are invoked:
- //components/cronet/android:cronet_package_copy_native_lib
- //third_party/icu:icudata
(I am using a heavily pruned version of cronet_package, it is possible
that the upstreamed version includes more such rules).
Test: parse //components/cronet:cronet_package
Change-Id: I47cd077b7f6261085d8006596df165f27a83a1d8
We need to determine if this should be replaced by Android's version of
those libraries.
This can be done via "stl" property on dependent targets (we would
additionally have to configure the version).
Test: n/a
Change-Id: Ibd54cc0b58086ec77d5eee40708f28b237d70c3f