summaryrefslogtreecommitdiff
path: root/classes/src_distribute.bbclass
blob: 30b2670011a96f32748ec3606f50fa49e7c7276d (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
SRC_DISTRIBUTECOMMAND[func] = "1"
python do_distribute_sources () {
	l = bb.data.createCopy(d)
	bb.data.update_data(l)
	licenses = (bb.data.getVar('LICENSE', d, 1) or "unknown").split()

	sources_dir = bb.data.getVar('SRC_DISTRIBUTEDIR', d, 1)
	import re
	for license in licenses:
		for entry in license.split("|"):
			for url in ((bb.data.getVar('SRC_URI', d, 1) or '').split()):
				bb.fetch.init([url], d)
				s = bb.fetch.localpath(url, d)
				s = re.sub(';.*$', '', s)
				cmd = bb.data.getVar('SRC_DISTRIBUTECOMMAND', d, 1)
				if not cmd:
					raise bb.build.FuncFailed("Unable to distribute sources, SRC_DISTRIBUTECOMMAND not defined")
				bb.data.setVar('SRC', s, d)
				bb.data.setVar('SRC_DISTRIBUTEDIR', "%s/%s" % (sources_dir, entry), d)
				bb.build.exec_func('SRC_DISTRIBUTECOMMAND', d)
}

addtask distribute_sources before do_build after do_fetch

addtask distsrcall after do_distribute_sources
do_distsrcall[recrdeptask] = "do_distribute_sources"
base_do_distsrcall() {
	:
}