diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/command.py | 9 | ||||
-rw-r--r-- | bitbake/lib/bb/cooker.py | 34 | ||||
-rw-r--r-- | bitbake/lib/bb/tinfoil.py | 9 |
3 files changed, 37 insertions, 15 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index eb7c86f4fe..c06ab072ad 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py | |||
@@ -548,11 +548,14 @@ class CommandsAsync: | |||
548 | bfile = params[0] | 548 | bfile = params[0] |
549 | task = params[1] | 549 | task = params[1] |
550 | if len(params) > 2: | 550 | if len(params) > 2: |
551 | hidewarning = params[2] | 551 | internal = params[2] |
552 | else: | 552 | else: |
553 | hidewarning = False | 553 | internal = False |
554 | 554 | ||
555 | command.cooker.buildFile(bfile, task, hidewarning) | 555 | if internal: |
556 | command.cooker.buildFileInternal(bfile, task, fireevents=False, quietlog=True) | ||
557 | else: | ||
558 | command.cooker.buildFile(bfile, task) | ||
556 | buildFile.needcache = False | 559 | buildFile.needcache = False |
557 | 560 | ||
558 | def buildTargets(self, command, params): | 561 | def buildTargets(self, command, params): |
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index daffe67540..1625d3c158 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1219,21 +1219,27 @@ class BBCooker: | |||
1219 | raise NoSpecificMatch | 1219 | raise NoSpecificMatch |
1220 | return matches[0] | 1220 | return matches[0] |
1221 | 1221 | ||
1222 | def buildFile(self, buildfile, task, hidewarning=False): | 1222 | def buildFile(self, buildfile, task): |
1223 | """ | 1223 | """ |
1224 | Build the file matching regexp buildfile | 1224 | Build the file matching regexp buildfile |
1225 | """ | 1225 | """ |
1226 | bb.event.fire(bb.event.BuildInit(), self.data) | 1226 | bb.event.fire(bb.event.BuildInit(), self.data) |
1227 | 1227 | ||
1228 | if not hidewarning: | 1228 | # Too many people use -b because they think it's how you normally |
1229 | # Too many people use -b because they think it's how you normally | 1229 | # specify a target to be built, so show a warning |
1230 | # specify a target to be built, so show a warning | 1230 | bb.warn("Buildfile specified, dependencies will not be handled. If this is not what you want, do not use -b / --buildfile.") |
1231 | bb.warn("Buildfile specified, dependencies will not be handled. If this is not what you want, do not use -b / --buildfile.") | ||
1232 | 1231 | ||
1233 | # Parse the configuration here. We need to do it explicitly here since | 1232 | # Parse the configuration here. We need to do it explicitly here since |
1234 | # buildFile() doesn't use the cache | 1233 | # buildFile() doesn't use the cache |
1235 | self.parseConfiguration() | 1234 | self.parseConfiguration() |
1236 | 1235 | ||
1236 | self.buildFileInternal(buildfile, task) | ||
1237 | |||
1238 | def buildFileInternal(self, buildfile, task, fireevents=True, quietlog=False): | ||
1239 | """ | ||
1240 | Build the file matching regexp buildfile | ||
1241 | """ | ||
1242 | |||
1237 | # If we are told to do the None task then query the default task | 1243 | # If we are told to do the None task then query the default task |
1238 | if (task == None): | 1244 | if (task == None): |
1239 | task = self.configuration.cmd | 1245 | task = self.configuration.cmd |
@@ -1270,8 +1276,8 @@ class BBCooker: | |||
1270 | # Remove external dependencies | 1276 | # Remove external dependencies |
1271 | self.recipecaches[mc].task_deps[fn]['depends'] = {} | 1277 | self.recipecaches[mc].task_deps[fn]['depends'] = {} |
1272 | self.recipecaches[mc].deps[fn] = [] | 1278 | self.recipecaches[mc].deps[fn] = [] |
1273 | self.recipecaches[mc].rundeps[fn] = [] | 1279 | self.recipecaches[mc].rundeps[fn] = defaultdict(list) |
1274 | self.recipecaches[mc].runrecs[fn] = [] | 1280 | self.recipecaches[mc].runrecs[fn] = defaultdict(list) |
1275 | 1281 | ||
1276 | # Invalidate task for target if force mode active | 1282 | # Invalidate task for target if force mode active |
1277 | if self.configuration.force: | 1283 | if self.configuration.force: |
@@ -1283,8 +1289,13 @@ class BBCooker: | |||
1283 | taskdata[mc] = bb.taskdata.TaskData(self.configuration.abort) | 1289 | taskdata[mc] = bb.taskdata.TaskData(self.configuration.abort) |
1284 | taskdata[mc].add_provider(self.databuilder.mcdata[mc], self.recipecaches[mc], item) | 1290 | taskdata[mc].add_provider(self.databuilder.mcdata[mc], self.recipecaches[mc], item) |
1285 | 1291 | ||
1292 | if quietlog: | ||
1293 | rqloglevel = bb.runqueue.logger.getEffectiveLevel() | ||
1294 | bb.runqueue.logger.setLevel(logging.WARNING) | ||
1295 | |||
1286 | buildname = self.databuilder.mcdata[mc].getVar("BUILDNAME") | 1296 | buildname = self.databuilder.mcdata[mc].getVar("BUILDNAME") |
1287 | bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.databuilder.mcdata[mc]) | 1297 | if fireevents: |
1298 | bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.databuilder.mcdata[mc]) | ||
1288 | 1299 | ||
1289 | # Execute the runqueue | 1300 | # Execute the runqueue |
1290 | runlist = [[mc, item, task, fn]] | 1301 | runlist = [[mc, item, task, fn]] |
@@ -1311,11 +1322,16 @@ class BBCooker: | |||
1311 | retval = False | 1322 | retval = False |
1312 | except SystemExit as exc: | 1323 | except SystemExit as exc: |
1313 | self.command.finishAsyncCommand(str(exc)) | 1324 | self.command.finishAsyncCommand(str(exc)) |
1325 | if quietlog: | ||
1326 | bb.runqueue.logger.setLevel(rqloglevel) | ||
1314 | return False | 1327 | return False |
1315 | 1328 | ||
1316 | if not retval: | 1329 | if not retval: |
1317 | bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, item, failures, interrupted), self.databuilder.mcdata[mc]) | 1330 | if fireevents: |
1331 | bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, item, failures, interrupted), self.databuilder.mcdata[mc]) | ||
1318 | self.command.finishAsyncCommand(msg) | 1332 | self.command.finishAsyncCommand(msg) |
1333 | if quietlog: | ||
1334 | bb.runqueue.logger.setLevel(rqloglevel) | ||
1319 | return False | 1335 | return False |
1320 | if retval is True: | 1336 | if retval is True: |
1321 | return True | 1337 | return True |
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py index 303ce02b00..65ebdc2b78 100644 --- a/bitbake/lib/bb/tinfoil.py +++ b/bitbake/lib/bb/tinfoil.py | |||
@@ -415,12 +415,15 @@ class Tinfoil: | |||
415 | else: | 415 | else: |
416 | return None | 416 | return None |
417 | 417 | ||
418 | def build_file(self, buildfile, task): | 418 | def build_file(self, buildfile, task, internal=True): |
419 | """ | 419 | """ |
420 | Runs the specified task for just a single recipe (i.e. no dependencies). | 420 | Runs the specified task for just a single recipe (i.e. no dependencies). |
421 | This is equivalent to bitbake -b, except no warning will be printed. | 421 | This is equivalent to bitbake -b, except with the default internal=True |
422 | no warning about dependencies will be produced, normal info messages | ||
423 | from the runqueue will be silenced and BuildInit, BuildStarted and | ||
424 | BuildCompleted events will not be fired. | ||
422 | """ | 425 | """ |
423 | return self.run_command('buildFile', buildfile, task, True) | 426 | return self.run_command('buildFile', buildfile, task, internal) |
424 | 427 | ||
425 | def shutdown(self): | 428 | def shutdown(self): |
426 | if self.server_connection: | 429 | if self.server_connection: |