diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index bc8574aa1e..38c22f50ed 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1321,7 +1321,7 @@ class BBCooker: | |||
1321 | bf = os.path.abspath(bf) | 1321 | bf = os.path.abspath(bf) |
1322 | 1322 | ||
1323 | self.collection = CookerCollectFiles(self.bbfile_config_priorities) | 1323 | self.collection = CookerCollectFiles(self.bbfile_config_priorities) |
1324 | filelist, masked = self.collection.collect_bbfiles(self.data, self.data) | 1324 | filelist, masked, searchdirs = self.collection.collect_bbfiles(self.data, self.data) |
1325 | try: | 1325 | try: |
1326 | os.stat(bf) | 1326 | os.stat(bf) |
1327 | bf = os.path.abspath(bf) | 1327 | bf = os.path.abspath(bf) |
@@ -1641,7 +1641,11 @@ class BBCooker: | |||
1641 | self.recipecaches[mc].ignored_dependencies.add(dep) | 1641 | self.recipecaches[mc].ignored_dependencies.add(dep) |
1642 | 1642 | ||
1643 | self.collection = CookerCollectFiles(self.bbfile_config_priorities) | 1643 | self.collection = CookerCollectFiles(self.bbfile_config_priorities) |
1644 | (filelist, masked) = self.collection.collect_bbfiles(self.data, self.data) | 1644 | (filelist, masked, searchdirs) = self.collection.collect_bbfiles(self.data, self.data) |
1645 | |||
1646 | # Add inotify watches for directories searched for bb/bbappend files | ||
1647 | for dirent in searchdirs: | ||
1648 | self.add_filewatch([[dirent]]) | ||
1645 | 1649 | ||
1646 | self.parser = CookerParser(self, filelist, masked) | 1650 | self.parser = CookerParser(self, filelist, masked) |
1647 | self.parsecache_valid = True | 1651 | self.parsecache_valid = True |
@@ -1876,6 +1880,18 @@ class CookerCollectFiles(object): | |||
1876 | collectlog.error("no recipe files to build, check your BBPATH and BBFILES?") | 1880 | collectlog.error("no recipe files to build, check your BBPATH and BBFILES?") |
1877 | bb.event.fire(CookerExit(), eventdata) | 1881 | bb.event.fire(CookerExit(), eventdata) |
1878 | 1882 | ||
1883 | # We need to track where we look so that we can add inotify watches. There | ||
1884 | # is no nice way to do this, this is horrid. We intercept the os.listdir() | ||
1885 | # calls while we run glob(). | ||
1886 | origlistdir = os.listdir | ||
1887 | searchdirs = [] | ||
1888 | |||
1889 | def ourlistdir(d): | ||
1890 | searchdirs.append(d) | ||
1891 | return origlistdir(d) | ||
1892 | |||
1893 | os.listdir = ourlistdir | ||
1894 | |||
1879 | # Can't use set here as order is important | 1895 | # Can't use set here as order is important |
1880 | newfiles = [] | 1896 | newfiles = [] |
1881 | for f in files: | 1897 | for f in files: |
@@ -1893,6 +1909,8 @@ class CookerCollectFiles(object): | |||
1893 | if g not in newfiles: | 1909 | if g not in newfiles: |
1894 | newfiles.append(g) | 1910 | newfiles.append(g) |
1895 | 1911 | ||
1912 | os.listdir = origlistdir | ||
1913 | |||
1896 | bbmask = config.getVar('BBMASK') | 1914 | bbmask = config.getVar('BBMASK') |
1897 | 1915 | ||
1898 | if bbmask: | 1916 | if bbmask: |
@@ -1951,7 +1969,7 @@ class CookerCollectFiles(object): | |||
1951 | topfile = bbfile_seen[base] | 1969 | topfile = bbfile_seen[base] |
1952 | self.overlayed[topfile].append(f) | 1970 | self.overlayed[topfile].append(f) |
1953 | 1971 | ||
1954 | return (bbfiles, masked) | 1972 | return (bbfiles, masked, searchdirs) |
1955 | 1973 | ||
1956 | def get_file_appends(self, fn): | 1974 | def get_file_appends(self, fn): |
1957 | """ | 1975 | """ |