gn2bp: Use different srcs based on arch
srcs of partition_allocator:partition_alloc contains x86_64 specific asm
code. This CL add hardcoded rule to support x64 arch by arch condition
for srcs.
Test: m cronet_aml_components_cronet_android_cronet
Change-Id: I45f9a57fd374fc6a6c6fa4394591904a7c739e14
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index d3b2a56..f782663 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -396,6 +396,7 @@
self.stubs = {}
self.cppflags = set()
self.rtti = False
+ self.arch = dict()
def to_string(self, output):
if self.comment:
@@ -442,6 +443,7 @@
self._output_field(output, 'cppflags')
if self.rtti:
self._output_field(output, 'rtti')
+ self._output_field(output, 'arch')
target_out = []
self._output_field(target_out, 'android')
@@ -1229,6 +1231,18 @@
raise Error('Unknown dep %s (%s) for target %s' %
(dep_module.name, dep_module.type, module.name))
+ # TODO: support arch difference in generic way
+ # Currently, it is expected that only a couple of modules (e.g. partition_alloc, boringssl)
+ # need arch condition. So, for now, hardcoding arch condition
+ if module.name == "cronet_aml_base_allocator_partition_allocator_partition_alloc":
+ x86_srcs = module.srcs.copy()
+ x86_srcs.remove(
+ "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc")
+ x86_srcs.add("base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc")
+ module.arch['x86'] = {'srcs': x86_srcs}
+ module.arch['x86_64'] = {'srcs': module.srcs.copy()}
+ module.srcs.clear()
+
return module
def create_java_module(blueprint, gn):