summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/src_distribute.oeclass23
-rw-r--r--classes/src_distribute_local.oeclass5
2 files changed, 28 insertions, 0 deletions
diff --git a/classes/src_distribute.oeclass b/classes/src_distribute.oeclass
index e69de29bb2..72c4a722ed 100644
--- a/classes/src_distribute.oeclass
+++ b/classes/src_distribute.oeclass
@@ -0,0 +1,23 @@
+include conf/licenses.conf
+
+SRC_DISTRIBUTECOMMAND[func] = "1"
+python do_distribute_sources () {
+ import copy
+ l = copy.deepcopy(d)
+ oe.data.update_data(l)
+ license = oe.data.getVar('LICENSE', d, 1)
+ src_distribute_licenses = (oe.data.getVar('SRC_DISTRIBUTE_LICENSES', d, 1) or "").split()
+ if not oe.data.getVar('LICENSE', d, 1) in src_distribute_licenses:
+ oe.note("LICENSE not listed in SRC_DISTRIBUTE_LICENSES, skipping source distribution")
+ return
+ import re
+ for s in (oe.data.getVar('A', d, 1) or "").split():
+ s = re.sub(';.*$', '', s)
+ cmd = oe.data.getVar('SRC_DISTRIBUTECOMMAND', d, 1)
+ if not cmd:
+ raise oe.build.FuncFailed("Unable to distribute sources, SRC_DISTRIBUTECOMMAND not defined")
+ oe.data.setVar('SRC', s, d)
+ oe.build.exec_func('SRC_DISTRIBUTECOMMAND', d)
+}
+
+addtask distribute_sources before do_build after do_fetch
diff --git a/classes/src_distribute_local.oeclass b/classes/src_distribute_local.oeclass
index 05ec117649..64705895f4 100644
--- a/classes/src_distribute_local.oeclass
+++ b/classes/src_distribute_local.oeclass
@@ -8,6 +8,11 @@ SRC_DIST_LOCAL ?= "move+symlink"
SRC_DISTRIBUTEDIR ?= "${DEPLOY_DIR}/sources"
SRC_DISTRIBUTECOMMAND () {
s="${SRC}"
+ if [ ! -L "$s" ] && (echo "$s"|grep "^${DL_DIR}"); then
+ :
+ else
+ exit 0;
+ fi
mkdir -p ${SRC_DISTRIBUTEDIR}
case "${SRC_DIST_LOCAL}" in
copy)