50 lines
1.5 KiB
Plaintext
50 lines
1.5 KiB
Plaintext
|
SRC_DISTRIBUTECOMMAND[func] = "1"
|
||
|
python do_distribute_sources () {
|
||
|
l = bb.data.createCopy(d)
|
||
|
bb.data.update_data(l)
|
||
|
|
||
|
sources_dir = d.getVar('SRC_DISTRIBUTEDIR', 1)
|
||
|
src_uri = d.getVar('SRC_URI', 1).split()
|
||
|
fetcher = bb.fetch2.Fetch(src_uri, d)
|
||
|
ud = fetcher.ud
|
||
|
|
||
|
licenses = d.getVar('LICENSE', 1).replace('&', '|')
|
||
|
licenses = licenses.replace('(', '').replace(')', '')
|
||
|
clean_licenses = ""
|
||
|
for x in licenses.split():
|
||
|
if x.strip() == '' or x == 'CLOSED':
|
||
|
continue
|
||
|
|
||
|
if x != "|":
|
||
|
clean_licenses += x
|
||
|
|
||
|
for license in clean_licenses.split('|'):
|
||
|
for url in ud.values():
|
||
|
cmd = d.getVar('SRC_DISTRIBUTECOMMAND', 1)
|
||
|
if not cmd:
|
||
|
raise bb.build.FuncFailed("Unable to distribute sources, SRC_DISTRIBUTECOMMAND not defined")
|
||
|
url.setup_localpath(d)
|
||
|
d.setVar('SRC', url.localpath)
|
||
|
if url.type == 'file':
|
||
|
if url.basename == '*':
|
||
|
import os.path
|
||
|
dest_dir = os.path.basename(os.path.dirname(os.path.abspath(url.localpath)))
|
||
|
d.setVar('DEST', "%s_%s/" % (d.getVar('PF', 1), dest_dir))
|
||
|
else:
|
||
|
d.setVar('DEST', "%s_%s" % (d.getVar('PF', 1), url.basename))
|
||
|
else:
|
||
|
d.setVar('DEST', '')
|
||
|
|
||
|
d.setVar('SRC_DISTRIBUTEDIR', "%s/%s" % (sources_dir, license))
|
||
|
bb.build.exec_func('SRC_DISTRIBUTECOMMAND', d)
|
||
|
}
|
||
|
|
||
|
addtask distribute_sources before do_build after do_fetch
|
||
|
|
||
|
addtask distribute_sources_all after do_distribute_sources
|
||
|
do_distribute_sources_all[recrdeptask] = "do_distribute_sources"
|
||
|
do_distribute_sources_all[nostamp] = "1"
|
||
|
do_distribute_sources_all () {
|
||
|
:
|
||
|
}
|