summaryrefslogtreecommitdiff
path: root/openembedded/classes/tmake.bbclass
blob: 05b82e496def17f0ec4f3b5824a66a2290db3cfb (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
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
74
75
76
77
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