Index: mojo/tools/mopy/paths.py |
diff --git a/mojo/tools/mopy/paths.py b/mojo/tools/mopy/paths.py |
index 751629a3c85a8f52c64eea23cdd3a294ea272588..22b418096878dbff29db4e030b3db6f7c4aa2be9 100644 |
--- a/mojo/tools/mopy/paths.py |
+++ b/mojo/tools/mopy/paths.py |
@@ -5,43 +5,40 @@ |
import os |
from .config import Config |
-from .gn import BuildDirectoryForConfig |
+ |
class Paths(object): |
"""Provides commonly used paths""" |
- def __init__(self, config=None, build_dir=None): |
- """Specify either a config or a build_dir to generate paths to binary |
- artifacts.""" |
+ def __init__(self, config): |
+ """Generate paths to binary artifacts from a Config object.""" |
self.src_root = os.path.abspath(os.path.join(__file__, |
os.pardir, os.pardir, os.pardir, os.pardir)) |
self.mojo_dir = os.path.join(self.src_root, "mojo") |
self.adb_path = os.path.join(self.src_root, 'third_party', 'android_tools', |
'sdk', 'platform-tools', 'adb') |
- if config: |
- self.build_dir = BuildDirectoryForConfig(config, self.src_root) |
- elif build_dir is not None: |
- self.build_dir = os.path.abspath(build_dir) |
- else: |
- self.build_dir = None |
- |
- if self.build_dir is not None: |
- self.mojo_shell_path = os.path.join(self.build_dir, "mojo_runner") |
- # TODO(vtl): Use the host OS here, since |config| may not be available. |
- # In any case, if the target is Windows, but the host isn't, using |
- # |os.path| isn't correct.... |
- if Config.GetHostOS() == Config.OS_WINDOWS: |
- self.mojo_shell_path += ".exe" |
- if config and config.target_os == Config.OS_ANDROID: |
- self.target_mojo_shell_path = os.path.join(self.build_dir, |
- "apks", |
- config.apk_name) |
- else: |
- self.target_mojo_shell_path = self.mojo_shell_path |
- else: |
- self.mojo_shell_path = None |
- self.target_mojo_shell_path = None |
+ 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 += ".exe" |
+ if config.target_os == Config.OS_ANDROID: |
+ self.mojo_runner = os.path.join(self.build_dir, "apks", config.apk_name) |
def RelPath(self, path): |
"""Returns the given path, relative to the current directory.""" |
@@ -50,20 +47,3 @@ class Paths(object): |
def SrcRelPath(self, path): |
"""Returns the given path, relative to self.src_root.""" |
return os.path.relpath(path, self.src_root) |
- |
- def FileFromUrl(self, url): |
- """Given an app URL (<scheme>:<appname>), return 'build_dir/appname.mojo'. |
- If self.build_dir is None, just return appname.mojo |
- """ |
- (_, name) = url.split(':') |
- if self.build_dir: |
- return os.path.join(self.build_dir, name + '.mojo') |
- return name + '.mojo' |
- |
- @staticmethod |
- def IsValidAppUrl(url): |
- """Returns False if url is malformed, True otherwise.""" |
- try: |
- return len(url.split(':')) == 2 |
- except ValueError: |
- return False |