cooker: don't choke if we have nothing to parse
[bitbake.git] / classes / base.bbclass
1 # Copyright (C) 2003  Chris Larson
2 #
3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the "Software"),
5 # to deal in the Software without restriction, including without limitation
6 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 # and/or sell copies of the Software, and to permit persons to whom the
8 # Software is furnished to do so, subject to the following conditions:
9
10 # The above copyright notice and this permission notice shall be included
11 # in all copies or substantial portions of the Software.
12
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
17 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18 # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
19 # OTHER DEALINGS IN THE SOFTWARE.
20
21 die() {
22         bbfatal "$*"
23 }
24
25 bbnote() {
26         echo "NOTE:" "$*"
27 }
28
29 bbwarn() {
30         echo "WARNING:" "$*"
31 }
32
33 bbfatal() {
34         echo "FATAL:" "$*"
35         exit 1
36 }
37
38 addtask showdata
39 do_showdata[nostamp] = "1"
40 python do_showdata() {
41         import sys
42         # emit variables and shell functions
43         bb.data.emit_env(sys.__stdout__, d, True)
44         # emit the metadata which isnt valid shell
45         for e in bb.data.keys(d):
46                 if bb.data.getVarFlag(e, 'python', d):
47                         sys.__stdout__.write("\npython %s () {\n%s}\n" % (e, bb.data.getVar(e, d, 1)))
48 }
49
50 addtask listtasks
51 do_listtasks[nostamp] = "1"
52 python do_listtasks() {
53         import sys
54         for e in bb.data.keys(d):
55                 if bb.data.getVarFlag(e, 'task', d):
56                         sys.__stdout__.write("%s\n" % e)
57 }
58
59 addtask build
60 do_build[dirs] = "${TOPDIR}"
61 do_build[nostamp] = "1"
62 python base_do_build () {
63         bb.note("The included, default BB base.bbclass does not define a useful default task.")
64         bb.note("Try running the 'listtasks' task against a .bb to see what tasks are defined.")
65 }
66
67 EXPORT_FUNCTIONS do_clean do_mrproper do_build