Index: tools/telemetry/telemetry/core/backends/adb_commands.py |
diff --git a/tools/telemetry/telemetry/core/backends/adb_commands.py b/tools/telemetry/telemetry/core/backends/adb_commands.py |
index 38111ac59a129026c7c1146370fb1770beb4161f..a7b4a4f7c29b9de6f328cd3e138f90d4fb521685 100644 |
--- a/tools/telemetry/telemetry/core/backends/adb_commands.py |
+++ b/tools/telemetry/telemetry/core/backends/adb_commands.py |
@@ -9,10 +9,10 @@ import logging |
import os |
import shutil |
import stat |
-import sys |
from telemetry.core import util |
-from telemetry.core.platform.profiler import android_prebuilt_profiler_helper |
+from telemetry.core.platform import factory |
+from telemetry.util import support_binaries |
# This is currently a thin wrapper around Chrome Android's |
# build scripts, located in chrome/build/android. This file exists mainly to |
@@ -105,37 +105,44 @@ def GetBuildTypeOfPath(path): |
def SetupPrebuiltTools(adb): |
- # TODO(bulach): build the host tools for mac, and the targets for x86/mips. |
- # Prebuilt tools from r226197. |
- prebuilt_tools = [ |
- 'bitmaptools', |
- 'file_poller', |
- 'forwarder_dist/device_forwarder', |
- 'host_forwarder', |
- 'md5sum_dist/md5sum_bin', |
- 'md5sum_bin_host', |
- 'purge_ashmem', |
+ """Some of the android pylib scripts we depend on are lame and expect |
+ binaries to be in the out/ directory. So we copy any prebuilt binaries there |
+ as a prereq.""" |
+ |
+ # TODO(bulach): Build the targets for x86/mips. |
+ device_tools = [ |
+ 'file_poller', |
+ 'forwarder_dist/device_forwarder', |
+ 'md5sum_dist/md5sum_bin', |
+ 'purge_ashmem', |
] |
- has_prebuilt = ( |
- sys.platform.startswith('linux') and |
- adb.system_properties['ro.product.cpu.abi'].startswith('armeabi')) |
- if not has_prebuilt: |
- return all([util.FindSupportBinary(t) for t in prebuilt_tools]) |
+ |
+ host_tools = [ |
+ 'bitmaptools', |
+ 'host_forwarder', |
+ 'md5sum_bin_host', |
+ ] |
+ |
+ has_device_prebuilt = adb.system_properties['ro.product.cpu.abi'].startswith( |
+ 'armeabi') |
+ if not has_device_prebuilt: |
+ return all([support_binaries.FindLocallyBuiltPath(t) for t in device_tools]) |
build_type = None |
- for t in prebuilt_tools: |
- src = os.path.basename(t) |
- android_prebuilt_profiler_helper.GetIfChanged(src) |
- bin_path = util.FindSupportBinary(t) |
+ for t in device_tools + host_tools: |
+ executable = os.path.basename(t) |
+ locally_built_path = support_binaries.FindLocallyBuiltPath(t) |
if not build_type: |
- build_type = GetBuildTypeOfPath(bin_path) or 'Release' |
+ build_type = GetBuildTypeOfPath(locally_built_path) or 'Release' |
constants.SetBuildType(build_type) |
dest = os.path.join(constants.GetOutDirectory(), t) |
- if not bin_path: |
- logging.warning('Setting up prebuilt %s', dest) |
+ if not locally_built_path: |
+ logging.info('Setting up prebuilt %s', dest) |
if not os.path.exists(os.path.dirname(dest)): |
os.makedirs(os.path.dirname(dest)) |
- prebuilt_path = android_prebuilt_profiler_helper.GetHostPath(src) |
+ platform_name = ('android' if t in device_tools else |
+ factory.GetPlatformBackendForCurrentOS().GetOSName()) |
+ prebuilt_path = support_binaries.FindPath(executable, platform_name) |
if not os.path.exists(prebuilt_path): |
raise NotImplementedError(""" |
%s must be checked into cloud storage. |