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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
DESCRIPTION = "Runs a shell in an environment as emitted by BitBake to execute tasks"
LICENSE = "GPL"
PR = "r1"
inherit autotools pkgconfig
do_configure() {
:
}
def devshell_emit_env(o, d, all=False, funcwhitelist=None):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
import bb
import bb.data
env = bb.data.keys(d)
for e in env:
if bb.data.getVarFlag(e, "func", d):
continue
bb.data.emit_var(e, o, d, all) and o.write('\n')
for e in env:
if not bb.data.getVarFlag(e, "func", d):
continue
if not funcwhitelist:
bb.data.emit_var(e, o, d) and o.write('\n')
continue
for i in funcwhitelist:
if e.startswith(i):
bb.data.emit_var(e, o, d) and o.write('\n')
break
python do_compile() {
import os
import os.path
workdir = bb.data.getVar('WORKDIR', d, 1)
shellfile = os.path.join(workdir, bb.data.expand("${TARGET_PREFIX}${DISTRO}-${MACHINE}-devshell", d))
f = open(shellfile, "w")
# emit variables and shell functions
devshell_emit_env(f, d, False, ["die", "oe", "autotools_do_configure"])
f.close()
}
do_install() {
:
}
do_stage() {
:
}
do_package() {
shellfile="${TARGET_PREFIX}${DISTRO}-${MACHINE}-devshell"
cd ${WORKDIR}
cp $shellfile tmpfile
echo "#!/bin/bash --rcfile" > $shellfile
sed -e "s:${S}:.:g" -e "s:exit 1:true:" tmpfile >> $shellfile
echo "export PS1='[OE::${TARGET_PREFIX}${DISTRO}-${MACHINE}]:\w\$ '" >> $shellfile
echo "alias ./configure=oe_runconf" >> $shellfile
echo "alias make=oe_runmake" >> $shellfile
mkdir -p ${DEPLOY_DIR}/addons
install -m 755 $shellfile ${DEPLOY_DIR}/addons
}
|