bitbake: bitbake: data_smart.py and friends: Track file inclusions for bitbake -e
authorPeter Seebach <peter.seebach@windriver.com>
Fri, 18 Jan 2013 11:45:22 +0000 (11:45 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 18 Jan 2013 12:35:19 +0000 (12:35 +0000)
commitef2806a8acbc6a6a49243b92a546a10f0bbec2bd
tree98a787b704831721c41fcad6df9303029111ec51
parenta9c86ae9a0bceb4a58ef94fbaeb5f975606afd2f
bitbake: bitbake: data_smart.py and friends: Track file inclusions for bitbake -e

This code adds inclusion history to bitbake -e output, showing
which files were included, in what order. This doesn't completely
resolve timing questions, because it doesn't show you which lines
of a file were processed before or after a given include, but it
does let you figure out what the path was by which a particular
file ended up in your build at all.

How it works: data_smart acquires a .history member, which is an
IncludeHistory; this represents the inclusion of a file and all its
inclusions, recursively. It provides methods for including files,
for finishing inclusion (done as an __exit__), and for
dumping the whole tree.

The parser is modified to run includes inside a with() to push
and pop the include filename.

RP Modifications:

a) Split Include and Variable tracking
b) Replace deepcopy usage with dedicated copy function
c) Simplify some variable and usage

(Bitbake rev: b2dda721262da8abb7dc32d019e18fbc32ed8860)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/cooker.py
bitbake/lib/bb/data_smart.py
bitbake/lib/bb/parse/__init__.py