aboutsummaryrefslogtreecommitdiffstats
path: root/classes/utility-tasks.bbclass
blob: ce110bc503eeb6b8a56d6214efa292f4058a05d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
addtask listtasks
do_listtasks[nostamp] = "1"
python do_listtasks() {
	import sys
	# emit variables and shell functions
	#bb.data.emit_env(sys.__stdout__, d)
	# emit the metadata which isnt valid shell
	for e in d.keys():
		if bb.data.getVarFlag(e, 'task', d):
			sys.__stdout__.write("%s\n" % e)
}

addtask clean
do_clean[dirs] = "${TOPDIR}"
do_clean[nostamp] = "1"
python do_clean() {
	"""clear the build and temp directories"""
	dir = bb.data.expand("${WORKDIR}", d)
	if dir == '//': raise bb.build.FuncFailed("wrong DATADIR")
	bb.note("removing " + base_path_out(dir, d))
	os.system('rm -rf ' + dir)

	dir = "%s.*" % bb.data.expand(bb.data.getVar('STAMP', d), d)
	bb.note("removing " + base_path_out(dir, d))
	os.system('rm -f '+ dir)
}

python do_cleanall() {
    pass
}
do_cleanall[recrdeptask] = "do_clean"
addtask cleanall after do_clean

addtask distclean
do_distclean[dirs] = "${TOPDIR}"
do_distclean[nostamp] = "1"
python do_distclean() {
	"""clear downloaded sources, build and temp directories"""

	bb.build.exec_func('do_clean', d)

	src_uri = bb.data.getVar('SRC_URI', d, 1)
	if not src_uri:
		return

	for uri in src_uri.split():
		if bb.decodeurl(uri)[0] == "file":
			continue

		try:
			local = bb.data.expand(bb.fetch.localpath(uri, d), d)
		except bb.MalformedUrl, e:
			bb.debug(1, 'Unable to generate local path for malformed uri: %s' % e)
		else:
			bb.note("removing %s" % base_path_out(local, d))
			try:
				if os.path.exists(local + ".md5"):
					os.remove(local + ".md5")
				if os.path.exists(local):
					os.remove(local)
			except OSError, e:
				bb.note("Error in removal: %s" % e)
}

addtask checkuri
do_checkuri[nostamp] = "1"
python do_checkuri() {
	import sys

	localdata = bb.data.createCopy(d)
	bb.data.update_data(localdata)

	src_uri = bb.data.getVar('SRC_URI', localdata, 1)

	try:
		bb.fetch.init(src_uri.split(),d)
	except bb.fetch.NoMethodError:
		(type, value, traceback) = sys.exc_info()
		raise bb.build.FuncFailed("No method: %s" % value)

	try:
		bb.fetch.checkstatus(localdata)
	except bb.fetch.MissingParameterError:
		(type, value, traceback) = sys.exc_info()
		raise bb.build.FuncFailed("Missing parameters: %s" % value)
	except bb.fetch.FetchError:
		(type, value, traceback) = sys.exc_info()
		raise bb.build.FuncFailed("Fetch failed: %s" % value)
	except bb.fetch.MD5SumError:
		(type, value, traceback) = sys.exc_info()
		raise bb.build.FuncFailed("MD5  failed: %s" % value)
	except:
		(type, value, traceback) = sys.exc_info()
		raise bb.build.FuncFailed("Unknown fetch Error: %s" % value)
}

addtask checkuriall after do_checkuri
do_checkuriall[recrdeptask] = "do_checkuri"
do_checkuriall[nostamp] = "1"
do_checkuriall() {
	:
}

addtask fetchall after do_fetch
do_fetchall[recrdeptask] = "do_fetch"
do_fetchall() {
	:
}

addtask buildall after do_build
do_buildall[recrdeptask] = "do_build"
do_buildall() {
	:
}