sg3-utils: add newer buildable version
[openembedded.git] / classes / utility-tasks.bbclass
1 addtask listtasks
2 do_listtasks[nostamp] = "1"
3 python do_listtasks() {
4         import sys
5         # emit variables and shell functions
6         #bb.data.emit_env(sys.__stdout__, d)
7         # emit the metadata which isnt valid shell
8         for e in d.keys():
9                 if bb.data.getVarFlag(e, 'task', d):
10                         sys.__stdout__.write("%s\n" % e)
11 }
12
13 addtask clean
14 do_clean[dirs] = "${TOPDIR}"
15 do_clean[nostamp] = "1"
16 python do_clean() {
17         """clear the build and temp directories"""
18         dir = bb.data.expand("${WORKDIR}", d)
19         if dir == '//': raise bb.build.FuncFailed("wrong DATADIR")
20         bb.note("removing " + base_path_out(dir, d))
21         os.system('rm -rf ' + dir)
22
23         dir = "%s.*" % bb.data.expand(bb.data.getVar('STAMP', d), d)
24         bb.note("removing " + base_path_out(dir, d))
25         os.system('rm -f '+ dir)
26 }
27
28 python do_cleanall() {
29     pass
30 }
31 do_cleanall[recrdeptask] = "do_clean"
32 addtask cleanall after do_clean
33
34 addtask rebuild after do_${BB_DEFAULT_TASK}
35 do_rebuild[dirs] = "${TOPDIR}"
36 do_rebuild[nostamp] = "1"
37 python do_rebuild() {
38         """rebuild a package"""
39 }
40
41 addtask mrproper
42 do_mrproper[dirs] = "${TOPDIR}"
43 do_mrproper[nostamp] = "1"
44 python do_mrproper() {
45         """clear downloaded sources, build and temp directories"""
46         dir = bb.data.expand("${DL_DIR}", d)
47         if dir == '/': bb.build.FuncFailed("wrong DATADIR")
48         bb.debug(2, "removing " + dir)
49         os.system('rm -rf ' + dir)
50         bb.build.exec_func('do_clean', d)
51 }
52
53 addtask distclean
54 do_distclean[dirs] = "${TOPDIR}"
55 do_distclean[nostamp] = "1"
56 python do_distclean() {
57         """clear downloaded sources, build and temp directories"""
58
59         bb.build.exec_func('do_clean', d)
60
61         src_uri = bb.data.getVar('SRC_URI', d, 1)
62         if not src_uri:
63                 return
64
65         for uri in src_uri.split():
66                 if bb.decodeurl(uri)[0] == "file":
67                         continue
68
69                 try:
70                         local = bb.data.expand(bb.fetch.localpath(uri, d), d)
71                 except bb.MalformedUrl, e:
72                         bb.debug(1, 'Unable to generate local path for malformed uri: %s' % e)
73                 else:
74                         bb.note("removing %s" % base_path_out(local, d))
75                         try:
76                                 if os.path.exists(local + ".md5"):
77                                         os.remove(local + ".md5")
78                                 if os.path.exists(local):
79                                         os.remove(local)
80                         except OSError, e:
81                                 bb.note("Error in removal: %s" % e)
82 }
83
84 addtask checkuri
85 do_checkuri[nostamp] = "1"
86 python do_checkuri() {
87         import sys
88
89         localdata = bb.data.createCopy(d)
90         bb.data.update_data(localdata)
91
92         src_uri = bb.data.getVar('SRC_URI', localdata, 1)
93
94         try:
95                 bb.fetch.init(src_uri.split(),d)
96         except bb.fetch.NoMethodError:
97                 (type, value, traceback) = sys.exc_info()
98                 raise bb.build.FuncFailed("No method: %s" % value)
99
100         try:
101                 bb.fetch.checkstatus(localdata)
102         except bb.fetch.MissingParameterError:
103                 (type, value, traceback) = sys.exc_info()
104                 raise bb.build.FuncFailed("Missing parameters: %s" % value)
105         except bb.fetch.FetchError:
106                 (type, value, traceback) = sys.exc_info()
107                 raise bb.build.FuncFailed("Fetch failed: %s" % value)
108         except bb.fetch.MD5SumError:
109                 (type, value, traceback) = sys.exc_info()
110                 raise bb.build.FuncFailed("MD5  failed: %s" % value)
111         except:
112                 (type, value, traceback) = sys.exc_info()
113                 raise bb.build.FuncFailed("Unknown fetch Error: %s" % value)
114 }
115
116 addtask checkuriall after do_checkuri
117 do_checkuriall[recrdeptask] = "do_checkuri"
118 do_checkuriall[nostamp] = "1"
119 do_checkuriall() {
120         :
121 }
122
123 addtask fetchall after do_fetch
124 do_fetchall[recrdeptask] = "do_fetch"
125 do_fetchall() {
126         :
127 }
128
129 addtask buildall after do_build
130 do_buildall[recrdeptask] = "do_build"
131 do_buildall() {
132         :
133 }