[cr tool] Fixing import problems

BUG=327999

Review URL: https://codereview.chromium.org/116363002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243952 0039d316-1c4b-4281-b951-d872f2087c98
parent dd10d4ef
...@@ -30,11 +30,10 @@ class GdbDebugger(cr.Debugger): ...@@ -30,11 +30,10 @@ class GdbDebugger(cr.Debugger):
def Attach(self, context, targets, arguments): def Attach(self, context, targets, arguments):
raise NotImplementedError('Attach not currently supported for gdb.') raise NotImplementedError('Attach not currently supported for gdb.')
@classmethod
def ClassInit(cls):
# Attempt to find a valid gdb on the path.
gdb_binaries = cr.Host.SearchPath('gdb')
if gdb_binaries:
cls.DETECTED.Set(CR_GDB=gdb_binaries[0])
def _DetectGdb():
"""Attempts to find a valid gdb on the path."""
gdb_binaries = cr.Host.SearchPath('gdb')
if gdb_binaries:
GdbDebugger.DETECTED.Set(CR_GDB=gdb_binaries[0])
_DetectGdb()
...@@ -77,10 +77,8 @@ class NinjaBuilder(cr.Builder): ...@@ -77,10 +77,8 @@ class NinjaBuilder(cr.Builder):
return self._targets return self._targets
@classmethod @classmethod
def DetectNinja(cls): def ClassInit(cls):
# TODO(iancottrell): If we can't detect ninja, we should be disabled. # TODO(iancottrell): If we can't detect ninja, we should be disabled.
ninja_binaries = cr.Host.SearchPath('ninja') ninja_binaries = cr.Host.SearchPath('ninja')
if ninja_binaries: if ninja_binaries:
cls.DETECTED.Set(NINJA_BINARY=ninja_binaries[0]) cls.DETECTED.Set(NINJA_BINARY=ninja_binaries[0])
NinjaBuilder.DetectNinja()
...@@ -44,12 +44,10 @@ class SyncCommand(cr.Command): ...@@ -44,12 +44,10 @@ class SyncCommand(cr.Command):
cr.Host.Execute(context, '{GCLIENT_BINARY}', 'sync', *context.remains) cr.Host.Execute(context, '{GCLIENT_BINARY}', 'sync', *context.remains)
def _AutoDetectGClient(): @classmethod
"""Attempts to detect gclient and it's parent repository.""" def ClassInit(cls):
gclient_binaries = cr.Host.SearchPath('gclient') # Attempt to detect gclient and it's parent repository.
if gclient_binaries: gclient_binaries = cr.Host.SearchPath('gclient')
SyncCommand.DETECTED.Set(GCLIENT_BINARY=gclient_binaries[0]) if gclient_binaries:
SyncCommand.DETECTED.Set(DEPOT_TOOLS=os.path.dirname(gclient_binaries[0])) cls.DETECTED.Set(GCLIENT_BINARY=gclient_binaries[0])
cls.DETECTED.Set(DEPOT_TOOLS=os.path.dirname(gclient_binaries[0]))
# Invoke the auto detection
_AutoDetectGClient()
...@@ -181,6 +181,10 @@ class Plugin(cr.loader.AutoExport): ...@@ -181,6 +181,10 @@ class Plugin(cr.loader.AutoExport):
if config_root.only_active: if config_root.only_active:
getattr(self, config_root.property_name).enabled = False getattr(self, config_root.property_name).enabled = False
@classmethod
def ClassInit(cls):
pass
@classmethod @classmethod
def GetInstance(cls): def GetInstance(cls):
"""Gets an instance of this plugin. """Gets an instance of this plugin.
...@@ -193,6 +197,8 @@ class Plugin(cr.loader.AutoExport): ...@@ -193,6 +197,8 @@ class Plugin(cr.loader.AutoExport):
""" """
plugin = _plugins.get(cls, None) plugin = _plugins.get(cls, None)
if plugin is None: if plugin is None:
# Run delayed class initialization
cls.ClassInit()
# Build a new instance of cls, and register it as the main instance. # Build a new instance of cls, and register it as the main instance.
plugin = cls() plugin = cls()
_plugins[cls] = plugin _plugins[cls] = plugin
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment