summaryrefslogtreecommitdiff
path: root/meta/classes/pkg_distribute.bbclass
blob: 52643a2f904b7daea002350a75c049bc4a4abd82 (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
PKG_DISTRIBUTECOMMAND[func] = "1"
python do_distribute_packages () {
	cmd = d.getVar('PKG_DISTRIBUTECOMMAND', 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
}