summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-02-12 15:37:59 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-02-19 06:28:46 -0800
commit6a531c8b3368f1d2594c60abeddc50a5642cacfa (patch)
treed2ea0d608acbc907ec6a2ed30c60cb1058a5fe2e /bitbake
parent0bc0e9801bf85358b343883506095dc0c04ea6f9 (diff)
downloadpoky-6a531c8b3368f1d2594c60abeddc50a5642cacfa.tar.gz
bitbake: ui: Replace depexp with taskexp
The data displayed by the depexp UI is buggy, bitbake can't convey accurate runtime dependency information. Convert the UI to become taskexp ("Task Explorer") which provides a graphical way of exploring the task-depends.dot file. This data is accurate and being able to visualise the data is an often requested feature as standard dot file viewers can't usualy cope. (Bitbake rev: 416a496edc692982af2feec768ac4df8fb799853) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/ui/taskexp.py (renamed from bitbake/lib/bb/ui/depexp.py)34
1 files changed, 9 insertions, 25 deletions
diff --git a/bitbake/lib/bb/ui/depexp.py b/bitbake/lib/bb/ui/taskexp.py
index 9630646ab1..9d14ecefaf 100644
--- a/bitbake/lib/bb/ui/depexp.py
+++ b/bitbake/lib/bb/ui/taskexp.py
@@ -78,7 +78,7 @@ class PackageReverseDepView(Gtk.TreeView):
78class DepExplorer(Gtk.Window): 78class DepExplorer(Gtk.Window):
79 def __init__(self): 79 def __init__(self):
80 Gtk.Window.__init__(self) 80 Gtk.Window.__init__(self)
81 self.set_title("Dependency Explorer") 81 self.set_title("Task Dependency Explorer")
82 self.set_default_size(500, 500) 82 self.set_default_size(500, 500)
83 self.connect("delete-event", Gtk.main_quit) 83 self.connect("delete-event", Gtk.main_quit)
84 84
@@ -106,30 +106,21 @@ class DepExplorer(Gtk.Window):
106 106
107 box = Gtk.VBox(homogeneous=True, spacing=4) 107 box = Gtk.VBox(homogeneous=True, spacing=4)
108 108
109 # Runtime Depends 109 # Task Depends
110 scrolled = Gtk.ScrolledWindow() 110 scrolled = Gtk.ScrolledWindow()
111 scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) 111 scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
112 scrolled.set_shadow_type(Gtk.ShadowType.IN) 112 scrolled.set_shadow_type(Gtk.ShadowType.IN)
113 self.rdep_treeview = PackageDepView(self.depends_model, TYPE_RDEP, "Runtime Depends") 113 self.dep_treeview = PackageDepView(self.depends_model, TYPE_DEP, "Dependencies")
114 self.rdep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PACKAGE)
115 scrolled.add(self.rdep_treeview)
116 box.add(scrolled)
117
118 # Build Depends
119 scrolled = Gtk.ScrolledWindow()
120 scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
121 scrolled.set_shadow_type(Gtk.ShadowType.IN)
122 self.dep_treeview = PackageDepView(self.depends_model, TYPE_DEP, "Build Depends")
123 self.dep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PACKAGE) 114 self.dep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PACKAGE)
124 scrolled.add(self.dep_treeview) 115 scrolled.add(self.dep_treeview)
125 box.add(scrolled) 116 box.add(scrolled)
126 pane.add2(box) 117 pane.add2(box)
127 118
128 # Reverse Depends 119 # Reverse Task Depends
129 scrolled = Gtk.ScrolledWindow() 120 scrolled = Gtk.ScrolledWindow()
130 scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) 121 scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
131 scrolled.set_shadow_type(Gtk.ShadowType.IN) 122 scrolled.set_shadow_type(Gtk.ShadowType.IN)
132 self.revdep_treeview = PackageReverseDepView(self.depends_model, "Reverse Depends") 123 self.revdep_treeview = PackageReverseDepView(self.depends_model, "Dependent Tasks")
133 self.revdep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PARENT) 124 self.revdep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PARENT)
134 scrolled.add(self.revdep_treeview) 125 scrolled.add(self.revdep_treeview)
135 box.add(scrolled) 126 box.add(scrolled)
@@ -160,22 +151,15 @@ class DepExplorer(Gtk.Window):
160 current_package = None 151 current_package = None
161 else: 152 else:
162 current_package = model.get_value(it, COL_PKG_NAME) 153 current_package = model.get_value(it, COL_PKG_NAME)
163 self.rdep_treeview.set_current_package(current_package)
164 self.dep_treeview.set_current_package(current_package) 154 self.dep_treeview.set_current_package(current_package)
165 self.revdep_treeview.set_current_package(current_package) 155 self.revdep_treeview.set_current_package(current_package)
166 156
167 157
168 def parse(self, depgraph): 158 def parse(self, depgraph):
169 for package in depgraph["pn"]: 159 for task in depgraph["tdepends"]:
170 self.pkg_model.insert(0, (package,)) 160 self.pkg_model.insert(0, (task,))
171 161 for depend in depgraph["tdepends"][task]:
172 for package in depgraph["depends"]: 162 self.depends_model.insert (0, (TYPE_DEP, task, depend))
173 for depend in depgraph["depends"][package]:
174 self.depends_model.insert (0, (TYPE_DEP, package, depend))
175
176 for package in depgraph["rdepends-pn"]:
177 for rdepend in depgraph["rdepends-pn"][package]:
178 self.depends_model.insert (0, (TYPE_RDEP, package, rdepend))
179 163
180 164
181class gtkthread(threading.Thread): 165class gtkthread(threading.Thread):