blob: 6ed6a906631e7e26f7c50eb16a7ac583f0e9379e [file] [log] [blame]
# Copyright 2014 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.
import os
from .config import Config
SRC_ROOT = os.path.abspath(os.path.join(__file__, '..', '..', '..', '..'))
class Paths(object):
'''Provides commonly used paths'''
def __init__(self, config):
'''Generate paths to binary artifacts from a Config object.'''
self.src_root = SRC_ROOT
self.mojo_dir = os.path.join(self.src_root, 'mojo')
self.build_dir = config.build_dir
if self.build_dir is None:
subdir = ''
if config.target_os == Config.OS_ANDROID:
subdir += 'android_'
if config.target_cpu != Config.ARCH_ARM:
subdir += config.target_cpu + '_'
elif config.target_os == Config.OS_CHROMEOS:
subdir += 'chromeos_'
subdir += 'Debug' if config.is_debug else 'Release'
if config.is_asan:
subdir += '_asan'
if not(config.is_debug) and config.dcheck_always_on:
subdir += '_dcheck'
self.build_dir = os.path.join(self.src_root, 'out', subdir)
self.mojo_runner = [os.path.join(self.build_dir, 'mojo_runner')]
if config.target_os == Config.OS_WINDOWS:
self.mojo_runner[0] += '.exe'
if config.target_os == Config.OS_ANDROID:
self.apk_path = os.path.join(self.build_dir, 'apks', config.apk_name)
self.mojo_runner = [os.path.join(self.src_root, 'mojo', 'tools',
'android_mojo_shell.py'),
'--apk', self.apk_path]
def RelPath(self, path):
'''Returns the given path, relative to the current directory.'''
return os.path.relpath(path)
def SrcRelPath(self, path):
'''Returns the given path, relative to self.src_root.'''
return os.path.relpath(path, self.src_root)