generic-poky/meta/classes/tmake.bbclass

78 lines
1.9 KiB
Plaintext

DEPENDS_prepend="tmake "
python tmake_do_createpro() {
import glob, sys
from bb import note
out_vartranslate = {
"TMAKE_HEADERS": "HEADERS",
"TMAKE_INTERFACES": "INTERFACES",
"TMAKE_TEMPLATE": "TEMPLATE",
"TMAKE_CONFIG": "CONFIG",
"TMAKE_DESTDIR": "DESTDIR",
"TMAKE_SOURCES": "SOURCES",
"TMAKE_DEPENDPATH": "DEPENDPATH",
"TMAKE_INCLUDEPATH": "INCLUDEPATH",
"TMAKE_TARGET": "TARGET",
"TMAKE_LIBS": "LIBS",
}
s = data.getVar('S', d, 1) or ""
os.chdir(s)
profiles = (data.getVar('TMAKE_PROFILES', d, 1) or "").split()
if not profiles:
profiles = ["*.pro"]
for pro in profiles:
ppro = glob.glob(pro)
if ppro:
if ppro != [pro]:
del profiles[profiles.index(pro)]
profiles += ppro
continue
if ppro[0].find('*'):
del profiles[profiles.index(pro)]
continue
else:
del profiles[profiles.index(pro)]
if len(profiles) != 0:
return
# output .pro using this metadata store
try:
from __builtin__ import file
profile = file(data.expand('${PN}.pro', d), 'w')
except OSError:
raise FuncFailed("unable to open pro file for writing.")
# fd = sys.__stdout__
fd = profile
for var in out_vartranslate.keys():
val = data.getVar(var, d, 1)
if val:
fd.write("%s\t: %s\n" % (out_vartranslate[var], val))
# if fd is not sys.__stdout__:
fd.close()
}
tmake_do_configure() {
paths="${STAGING_DATADIR}/tmake/qws/${TARGET_OS}-${TARGET_ARCH}-g++ $STAGING_DIR/share/tmake/$OS-g++"
if (echo "${TARGET_ARCH}"|grep -q 'i.86'); then
paths="${STAGING_DATADIR}/tmake/qws/${TARGET_OS}-x86-g++ $paths"
fi
for i in $paths; do
if test -e $i; then
export TMAKEPATH=$i
break
fi
done
if [ -z "${TMAKE_PROFILES}" ]; then
TMAKE_PROFILES="`ls *.pro`"
fi
tmake -o Makefile $TMAKE_PROFILES || die "Error calling tmake on ${TMAKE_PROFILES}"
}
EXPORT_FUNCTIONS do_configure do_createpro
addtask configure after do_unpack do_patch before do_compile
addtask createpro before do_configure after do_unpack do_patch