diff options
Diffstat (limited to 'classes')
-rw-r--r-- | classes/pkg_distribute.bbclass | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/classes/pkg_distribute.bbclass b/classes/pkg_distribute.bbclass index e69de29bb2..81978e3e3b 100644 --- a/classes/pkg_distribute.bbclass +++ b/classes/pkg_distribute.bbclass @@ -0,0 +1,29 @@ +PKG_DISTRIBUTECOMMAND[func] = "1" +python do_distribute_packages () { + cmd = bb.data.getVar('PKG_DISTRIBUTECOMMAND', d, 1) + if not cmd: + raise bb.build.FuncFailed("Unable to distribute packages, PKG_DISTRIBUTECOMMAND not defined") + bb.build.exec_func('PKG_DISTRIBUTECOMMAND', d) +} + +addtask distribute_packages before do_build after do_fetch + +PKG_DIST_LOCAL ?= "symlink" +PKG_DISTRIBUTEDIR ?= "${DEPLOY_DIR}/packages" + +PKG_DISTRIBUTECOMMAND () { + p=`dirname ${FILE}` + d=`basename $p` + mkdir -p ${PKG_DISTRIBUTEDIR} + case "${PKG_DIST_LOCAL}" in + copy) + # use this weird tar command to copy because we want to + # exclude the BitKeeper directories + test -e ${PKG_DISTRIBUTEDIR}/${d} || mkdir ${PKG_DISTRIBUTEDIR}/${d}; + (cd ${p}; tar -c --exclude SCCS -f - . ) | tar -C ${PKG_DISTRIBUTEDIR}/${d} -xpf - + ;; + symlink) + ln -sf $p ${PKG_DISTRIBUTEDIR}/ + ;; + esac +} |