8from distutils.version
import LooseVersion
13 if not reload_module
and MODULE_NAME
in sys.modules:
14 del sys.modules[MODULE_NAME]
16 if sys.version_info[0] >= 3:
17 sys.path.append(os.path.dirname(path))
18 bridge = imp.load_source(MODULE_NAME, path)
20 if not hasattr(bridge,
'__lldb_init_module'):
25 session_dict[MODULE_NAME] = bridge
28 bridge.__lldb_init_module(debugger, session_dict)
30 if not debugger.GetCategory(
'Qt'):
32 del session_dict[MODULE_NAME]
38 print(
"Using Qt summary providers from Creator {} in '{}'".format(
39 bridge.CREATOR_VERSION, bridge.CREATOR_PATH))
41def __lldb_init_module(debugger, session_dict):
45 if MODULE_NAME
in sys.modules:
46 module = sys.modules[MODULE_NAME]
48 bridge =
import_bridge(module.__file__, debugger, session_dict,
55 for install
in os.popen(
56 'mdfind kMDItemCFBundleIdentifier=org.qt-project.qtcreator'
58 'do echo $p=$(mdls "$p" -name kMDItemVersion -raw);'
60 install = install.strip()
61 (p, v) = install.split(
'=')
64 for version
in sorted(versions, key=LooseVersion, reverse=
True):
65 path = versions[version]
67 bridge_path =
'{}/Contents/Resources/debugger/lldbbridge.py'.format(path)
70 bridge.CREATOR_VERSION = version
71 bridge.CREATOR_PATH = path
75 print(
"Could not find Qt Creator installation, no Qt summary providers installed")
import_bridge(path, debugger, session_dict, reload_module=False)