diff options
Diffstat (limited to 'bitbake/lib/bb/cache.py')
| -rw-r--r-- | bitbake/lib/bb/cache.py | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index 4e08c100ab..fcb15796cc 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py | |||
| @@ -284,36 +284,15 @@ def parse_recipe(bb_data, bbfile, appends, mc=''): | |||
| 284 | Parse a recipe | 284 | Parse a recipe |
| 285 | """ | 285 | """ |
| 286 | 286 | ||
| 287 | chdir_back = False | ||
| 288 | |||
| 289 | bb_data.setVar("__BBMULTICONFIG", mc) | 287 | bb_data.setVar("__BBMULTICONFIG", mc) |
| 290 | 288 | ||
| 291 | # expand tmpdir to include this topdir | ||
| 292 | bb_data.setVar('TMPDIR', bb_data.getVar('TMPDIR') or "") | ||
| 293 | bbfile_loc = os.path.abspath(os.path.dirname(bbfile)) | 289 | bbfile_loc = os.path.abspath(os.path.dirname(bbfile)) |
| 294 | oldpath = os.path.abspath(os.getcwd()) | ||
| 295 | bb.parse.cached_mtime_noerror(bbfile_loc) | 290 | bb.parse.cached_mtime_noerror(bbfile_loc) |
| 296 | 291 | ||
| 297 | # The ConfHandler first looks if there is a TOPDIR and if not | 292 | if appends: |
| 298 | # then it would call getcwd(). | 293 | bb_data.setVar('__BBAPPEND', " ".join(appends)) |
| 299 | # Previously, we chdir()ed to bbfile_loc, called the handler | 294 | bb_data = bb.parse.handle(bbfile, bb_data) |
| 300 | # and finally chdir()ed back, a couple of thousand times. We now | 295 | return bb_data |
| 301 | # just fill in TOPDIR to point to bbfile_loc if there is no TOPDIR yet. | ||
| 302 | if not bb_data.getVar('TOPDIR', False): | ||
| 303 | chdir_back = True | ||
| 304 | bb_data.setVar('TOPDIR', bbfile_loc) | ||
| 305 | try: | ||
| 306 | if appends: | ||
| 307 | bb_data.setVar('__BBAPPEND', " ".join(appends)) | ||
| 308 | bb_data = bb.parse.handle(bbfile, bb_data) | ||
| 309 | if chdir_back: | ||
| 310 | os.chdir(oldpath) | ||
| 311 | return bb_data | ||
| 312 | except: | ||
| 313 | if chdir_back: | ||
| 314 | os.chdir(oldpath) | ||
| 315 | raise | ||
| 316 | |||
| 317 | 296 | ||
| 318 | 297 | ||
| 319 | class NoCache(object): | 298 | class NoCache(object): |
