mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 22:36:09 +03:00
171 lines
4.0 KiB
Python
171 lines
4.0 KiB
Python
|
# Copyright 2015 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
"""Configures devil for use in chromium."""
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
|
||
|
from pylib.constants import host_paths
|
||
|
|
||
|
if host_paths.DEVIL_PATH not in sys.path:
|
||
|
sys.path.append(host_paths.DEVIL_PATH)
|
||
|
|
||
|
from devil import devil_env
|
||
|
|
||
|
_DEVIL_CONFIG = os.path.abspath(
|
||
|
os.path.join(os.path.dirname(__file__), 'devil_chromium.json'))
|
||
|
|
||
|
_DEVIL_BUILD_PRODUCT_DEPS = {
|
||
|
'chromium_commands': [
|
||
|
{
|
||
|
'platform': 'linux2',
|
||
|
'arch': 'x86_64',
|
||
|
'path_components': ['lib.java', 'chromium_commands.dex.jar'],
|
||
|
}
|
||
|
],
|
||
|
'forwarder_device': [
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'armeabi-v7a',
|
||
|
'path_components': ['forwarder_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'arm64-v8a',
|
||
|
'path_components': ['forwarder_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'mips',
|
||
|
'path_components': ['forwarder_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'mips64',
|
||
|
'path_components': ['forwarder_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'x86',
|
||
|
'path_components': ['forwarder_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'x86_64',
|
||
|
'path_components': ['forwarder_dist'],
|
||
|
},
|
||
|
],
|
||
|
'forwarder_host': [
|
||
|
{
|
||
|
'platform': 'linux2',
|
||
|
'arch': 'x86_64',
|
||
|
'path_components': ['host_forwarder'],
|
||
|
},
|
||
|
],
|
||
|
'md5sum_device': [
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'armeabi-v7a',
|
||
|
'path_components': ['md5sum_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'arm64-v8a',
|
||
|
'path_components': ['md5sum_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'mips',
|
||
|
'path_components': ['md5sum_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'mips64',
|
||
|
'path_components': ['md5sum_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'x86',
|
||
|
'path_components': ['md5sum_dist'],
|
||
|
},
|
||
|
{
|
||
|
'platform': 'android',
|
||
|
'arch': 'x86_64',
|
||
|
'path_components': ['md5sum_dist'],
|
||
|
},
|
||
|
],
|
||
|
'md5sum_host': [
|
||
|
{
|
||
|
'platform': 'linux2',
|
||
|
'arch': 'x86_64',
|
||
|
'path_components': ['md5sum_bin_host'],
|
||
|
},
|
||
|
],
|
||
|
}
|
||
|
|
||
|
|
||
|
def Initialize(output_directory=None, custom_deps=None, adb_path=None):
|
||
|
"""Initializes devil with chromium's binaries and third-party libraries.
|
||
|
|
||
|
This includes:
|
||
|
- Libraries:
|
||
|
- the android SDK ("android_sdk")
|
||
|
- pymock ("pymock")
|
||
|
- Build products:
|
||
|
- host & device forwarder binaries
|
||
|
("forwarder_device" and "forwarder_host")
|
||
|
- host & device md5sum binaries ("md5sum_device" and "md5sum_host")
|
||
|
|
||
|
Args:
|
||
|
output_directory: An optional path to the output directory. If not set,
|
||
|
no built dependencies are configured.
|
||
|
custom_deps: An optional dictionary specifying custom dependencies.
|
||
|
This should be of the form:
|
||
|
|
||
|
{
|
||
|
'dependency_name': {
|
||
|
'platform': 'path',
|
||
|
...
|
||
|
},
|
||
|
...
|
||
|
}
|
||
|
"""
|
||
|
|
||
|
devil_dynamic_config = {
|
||
|
'config_type': 'BaseConfig',
|
||
|
'dependencies': {},
|
||
|
}
|
||
|
if output_directory:
|
||
|
output_directory = os.path.abspath(output_directory)
|
||
|
devil_dynamic_config['dependencies'] = {
|
||
|
dep_name: {
|
||
|
'file_info': {
|
||
|
'%s_%s' % (dep_config['platform'], dep_config['arch']): {
|
||
|
'local_paths': [
|
||
|
os.path.join(output_directory, *dep_config['path_components']),
|
||
|
],
|
||
|
}
|
||
|
for dep_config in dep_configs
|
||
|
}
|
||
|
}
|
||
|
for dep_name, dep_configs in _DEVIL_BUILD_PRODUCT_DEPS.iteritems()
|
||
|
}
|
||
|
if custom_deps:
|
||
|
devil_dynamic_config['dependencies'].update(custom_deps)
|
||
|
if adb_path:
|
||
|
devil_dynamic_config['dependencies'].update({
|
||
|
'adb': {
|
||
|
'file_info': {
|
||
|
devil_env.GetPlatform(): {
|
||
|
'local_paths': [adb_path]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
devil_env.config.Initialize(
|
||
|
configs=[devil_dynamic_config], config_files=[_DEVIL_CONFIG])
|
||
|
|