diff options
Diffstat (limited to 'meta/classes/pkg_distribute.bbclass')
-rw-r--r-- | meta/classes/pkg_distribute.bbclass | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/meta/classes/pkg_distribute.bbclass b/meta/classes/pkg_distribute.bbclass new file mode 100644 index 0000000000..81978e3e3b --- /dev/null +++ b/meta/classes/pkg_distribute.bbclass | |||
@@ -0,0 +1,29 @@ | |||
1 | PKG_DISTRIBUTECOMMAND[func] = "1" | ||
2 | python do_distribute_packages () { | ||
3 | cmd = bb.data.getVar('PKG_DISTRIBUTECOMMAND', d, 1) | ||
4 | if not cmd: | ||
5 | raise bb.build.FuncFailed("Unable to distribute packages, PKG_DISTRIBUTECOMMAND not defined") | ||
6 | bb.build.exec_func('PKG_DISTRIBUTECOMMAND', d) | ||
7 | } | ||
8 | |||
9 | addtask distribute_packages before do_build after do_fetch | ||
10 | |||
11 | PKG_DIST_LOCAL ?= "symlink" | ||
12 | PKG_DISTRIBUTEDIR ?= "${DEPLOY_DIR}/packages" | ||
13 | |||
14 | PKG_DISTRIBUTECOMMAND () { | ||
15 | p=`dirname ${FILE}` | ||
16 | d=`basename $p` | ||
17 | mkdir -p ${PKG_DISTRIBUTEDIR} | ||
18 | case "${PKG_DIST_LOCAL}" in | ||
19 | copy) | ||
20 | # use this weird tar command to copy because we want to | ||
21 | # exclude the BitKeeper directories | ||
22 | test -e ${PKG_DISTRIBUTEDIR}/${d} || mkdir ${PKG_DISTRIBUTEDIR}/${d}; | ||
23 | (cd ${p}; tar -c --exclude SCCS -f - . ) | tar -C ${PKG_DISTRIBUTEDIR}/${d} -xpf - | ||
24 | ;; | ||
25 | symlink) | ||
26 | ln -sf $p ${PKG_DISTRIBUTEDIR}/ | ||
27 | ;; | ||
28 | esac | ||
29 | } | ||