gn2bp: get arch from toolchain
Default all non-android toolchains to the host toolchain. Some limited host support may be required. Let's see. Test: //components/cronet/android:cronet Change-Id: I3bc7a0d5da0c9558bda83583a0a7f90b1a5a2597
This commit is contained in:
@@ -202,6 +202,21 @@ class GnParser(object):
|
||||
# TODO: There are some other possible variations we might need to support.
|
||||
return target.type == 'group' and re.match('.*_java$', target.name)
|
||||
|
||||
def _get_arch(self, toolchain):
|
||||
if toolchain is None:
|
||||
# TODO: throw an exception instead of defaulting to x86_64.
|
||||
return 'x86_64'
|
||||
elif toolchain == '//build/toolchain/android:android_clang_x86':
|
||||
return 'x86'
|
||||
elif toolchain == '//build/toolchain/android:android_clang_x64':
|
||||
return 'x86_64'
|
||||
elif toolchain == '//build/toolchain/android:android_clang_arm':
|
||||
return 'arm'
|
||||
elif toolchain == '//build/toolchain/android:android_clang_arm64':
|
||||
return 'arm64'
|
||||
else:
|
||||
return 'host'
|
||||
|
||||
def get_target(self, gn_target_name):
|
||||
"""Returns a Target object from the fully qualified GN target name.
|
||||
|
||||
@@ -220,8 +235,7 @@ class GnParser(object):
|
||||
target_name = label_without_toolchain(gn_target_name)
|
||||
target = self.all_targets.get(target_name)
|
||||
desc = gn_desc[gn_target_name]
|
||||
# TODO: get arch from toolchain
|
||||
arch = 'x86_64'
|
||||
arch = self._get_arch(desc.get('toolchain', None))
|
||||
if target is None:
|
||||
target = GnParser.Target(target_name, desc['type'])
|
||||
self.all_targets[target_name] = target
|
||||
@@ -232,6 +246,7 @@ class GnParser(object):
|
||||
return target # Target already processed.
|
||||
|
||||
target.testonly = desc.get('testonly', False)
|
||||
# TODO: remove toolchain from Target object
|
||||
target.toolchain = desc.get('toolchain', None)
|
||||
|
||||
proto_target_type, proto_desc = self.get_proto_target_type(gn_desc, gn_target_name)
|
||||
|
||||
Reference in New Issue
Block a user