bb/cooker: only emit ConfigFilePathFound for files which were parsed

When the requested configuration file is found on disk check the
against the configuration files in __depends/__base_depends to ensure the
file was parsed before emitting the ConfigFilePathFound event.
If the requested file wasn't parsed just return (and don't emit).

Fixes [YOCTO #1246]

(Bitbake rev: 705d14d1e1108e0544c7eab827f1242f0839add9)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Lock 2011-08-09 09:23:36 -07:00 committed by Richard Purdie
parent 6bb2a22b36
commit 786033f53c
1 changed files with 26 additions and 2 deletions

View File

@ -615,9 +615,33 @@ class BBCooker:
collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
def findConfigFilePath(self, configfile):
"""
Find the location on disk of configfile and if it exists and was parsed by BitBake
emit the ConfigFilePathFound event with the path to the file.
"""
path = self._findConfigFile(configfile)
if path:
bb.event.fire(bb.event.ConfigFilePathFound(path), self.configuration.data)
if not path:
return
# Generate a list of parsed configuration files by searching the files
# listed in the __depends and __base_depends variables with a .conf suffix.
conffiles = []
dep_files = bb.data.getVar('__depends', self.configuration.data) or set()
dep_files.union(bb.data.getVar('__base_depends', self.configuration.data) or set())
for f in dep_files:
if f[0].endswith(".conf"):
conffiles.append(f[0])
_, conf, conffile = path.rpartition("conf/")
match = os.path.join(conf, conffile)
# Try and find matches for conf/conffilename.conf as we don't always
# have the full path to the file.
for cfg in conffiles:
if cfg.endswith(match):
bb.event.fire(bb.event.ConfigFilePathFound(path),
self.configuration.data)
break
def findFilesMatchingInDir(self, filepattern, directory):
"""