summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriancottrell@chromium.org <iancottrell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-09 19:29:35 +0000
committeriancottrell@chromium.org <iancottrell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-09 19:29:35 +0000
commita646254455c93230de5706ae14aaad112283cea9 (patch)
treed8435a9814c508595f3379a7e0ef16e533fdc868
parentdd10d4ef931ea2b56e380d15ed2503761128c5db (diff)
downloadchromium_src-a646254455c93230de5706ae14aaad112283cea9.zip
chromium_src-a646254455c93230de5706ae14aaad112283cea9.tar.gz
chromium_src-a646254455c93230de5706ae14aaad112283cea9.tar.bz2
[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
-rw-r--r--tools/cr/cr/actions/gdb.py13
-rw-r--r--tools/cr/cr/actions/ninja.py4
-rw-r--r--tools/cr/cr/commands/sync.py16
-rw-r--r--tools/cr/cr/plugin.py6
4 files changed, 20 insertions, 19 deletions
diff --git a/tools/cr/cr/actions/gdb.py b/tools/cr/cr/actions/gdb.py
index d93fe27..64386db 100644
--- a/tools/cr/cr/actions/gdb.py
+++ b/tools/cr/cr/actions/gdb.py
@@ -30,11 +30,10 @@ class GdbDebugger(cr.Debugger):
def Attach(self, context, targets, arguments):
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()
diff --git a/tools/cr/cr/actions/ninja.py b/tools/cr/cr/actions/ninja.py
index 404e6ca..fda217a 100644
--- a/tools/cr/cr/actions/ninja.py
+++ b/tools/cr/cr/actions/ninja.py
@@ -77,10 +77,8 @@ class NinjaBuilder(cr.Builder):
return self._targets
@classmethod
- def DetectNinja(cls):
+ def ClassInit(cls):
# TODO(iancottrell): If we can't detect ninja, we should be disabled.
ninja_binaries = cr.Host.SearchPath('ninja')
if ninja_binaries:
cls.DETECTED.Set(NINJA_BINARY=ninja_binaries[0])
-
-NinjaBuilder.DetectNinja()
diff --git a/tools/cr/cr/commands/sync.py b/tools/cr/cr/commands/sync.py
index cef9b7a..4f5232ab 100644
--- a/tools/cr/cr/commands/sync.py
+++ b/tools/cr/cr/commands/sync.py
@@ -44,12 +44,10 @@ class SyncCommand(cr.Command):
cr.Host.Execute(context, '{GCLIENT_BINARY}', 'sync', *context.remains)
-def _AutoDetectGClient():
- """Attempts to detect gclient and it's parent repository."""
- gclient_binaries = cr.Host.SearchPath('gclient')
- if gclient_binaries:
- SyncCommand.DETECTED.Set(GCLIENT_BINARY=gclient_binaries[0])
- SyncCommand.DETECTED.Set(DEPOT_TOOLS=os.path.dirname(gclient_binaries[0]))
-
-# Invoke the auto detection
-_AutoDetectGClient()
+ @classmethod
+ def ClassInit(cls):
+ # Attempt to detect gclient and it's parent repository.
+ gclient_binaries = cr.Host.SearchPath('gclient')
+ if gclient_binaries:
+ cls.DETECTED.Set(GCLIENT_BINARY=gclient_binaries[0])
+ cls.DETECTED.Set(DEPOT_TOOLS=os.path.dirname(gclient_binaries[0]))
diff --git a/tools/cr/cr/plugin.py b/tools/cr/cr/plugin.py
index 05a02cb..eccd869 100644
--- a/tools/cr/cr/plugin.py
+++ b/tools/cr/cr/plugin.py
@@ -182,6 +182,10 @@ class Plugin(cr.loader.AutoExport):
getattr(self, config_root.property_name).enabled = False
@classmethod
+ def ClassInit(cls):
+ pass
+
+ @classmethod
def GetInstance(cls):
"""Gets an instance of this plugin.
@@ -193,6 +197,8 @@ class Plugin(cr.loader.AutoExport):
"""
plugin = _plugins.get(cls, None)
if plugin is None:
+ # Run delayed class initialization
+ cls.ClassInit()
# Build a new instance of cls, and register it as the main instance.
plugin = cls()
_plugins[cls] = plugin