Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: build/android/devil/devil_env.py

Issue 1316413003: [Android] Add a configurable environment for devil/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: dependency_manager implementation Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import logging
6 import os
7 import sys
8 import threading
9
10 # TODO(jbudorick): Update this once dependency_manager moves to catapult.
11 _TELEMETRY_PATH = os.path.abspath(os.path.join(
12 os.path.dirname(__file__), os.pardir, os.pardir, os.pardir,
13 'tools', 'telemetry'))
14 sys.path.append(_TELEMETRY_PATH)
15 from catapult_base import dependency_manager # pylint: disable=import-error
16
17
18 instance = None
19
20
21 class _Environment(object):
22
23 def __init__(self, config_files):
perezju 2015/09/14 09:13:58 Suggestion, make it something like: class _Enviro
jbudorick 2015/09/14 13:12:39 Hm, this is an interesting idea. I'll try it & get
24 dm = dependency_manager.DependencyManager(
25 [dependency_manager.BaseConfig(c) for c in config_files])
26 platform = 'linux_android'
27
28 self._android_sdk_path = dm.FetchPath('android_sdk', platform)
29 self._adb_path = (
30 dm.FetchPath('adb_path', platform)
31 or os.path.join(self._android_sdk_path, 'platform-tools', 'adb'))
32
33 build_tools_contents = os.listdir(
34 os.path.join(self._android_sdk_path, 'build-tools'))
35 if not build_tools_contents:
36 self._android_sdk_build_tools_path = None
37 else:
38 if len(build_tools_contents) > 1:
39 build_tools_contents.sort()
perezju 2015/09/14 09:13:58 if there are multiple build_tools, how do they typ
jbudorick 2015/09/14 13:12:39 I've never seen multiple, but they're typically na
40 logging.warning(
41 'More than one set of build-tools provided by the Android SDK: %s',
42 ','.join(build_tools_contents))
43 logging.warning('Defaulting to %s', build_tools_contents[-1])
44 self._android_sdk_build_tools_path = os.path.join(
45 self._android_sdk_path, 'build-tools', build_tools_contents[-1])
46
47 self._forwarder_host_path = dm.FetchPath('forwarder_host', platform)
48 self._forwarder_device_path = dm.FetchPath('forwarder_device', platform)
49
50 self._md5sum_host_path = dm.FetchPath('md5sum_host', platform)
51 self._md5sum_device_path = dm.FetchPath('md5sum_device', platform)
52
53 self._pymock_path = dm.FetchPath('pymock', platform)
54
55 @property
56 def adb_path(self):
57 return self._adb_path
58
59 @property
60 def android_sdk_path(self):
61 return self._android_sdk_path
62
63 @property
64 def android_sdk_build_tools_path(self):
65 return self._android_sdk_build_tools_path
66
67 @property
68 def forwarder_host_path(self):
69 return self._forwarder_host_path
70
71 @property
72 def forwarder_device_path(self):
73 return self._forwarder_device_path
74
75 @property
76 def md5sum_host_path(self):
77 return self._md5sum_host_path
78
79 @property
80 def md5sum_device_path(self):
81 return self._md5sum_device_path
82
83 @property
84 def pymock_path(self):
85 return self._pymock_path
86
87
88 _env_init_lock = threading.Lock()
89
90 def Initialize(config_files):
91 with _env_init_lock:
92 global instance # pylint: disable=global-statement
93 if not instance:
94 instance = _Environment(config_files)
95
96 def InitializeForTests():
97 test_configs = [
98 os.path.abspath(os.path.join(
99 os.path.dirname(__file__), os.pardir, 'devil_config.json'))
100 ]
101 Initialize(test_configs)
102
103 def GenerateDynamicConfig(deps):
104 return {
105 'config_type': 'BaseConfig',
106 'dependencies': {
107 k: {
108 'file_info': {
109 'linux_android': {
110 'local_paths': v
111 }
112 }
113 } for k, v in deps.iteritems()
114 }
115 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698