summaryrefslogtreecommitdiffstats
path: root/meta/classes-recipe/scons.bbclass
blob: 1cb375522d61084471df3f79fea88a269f2b5c3e (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
#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#

inherit python3native

DEPENDS += "python3-scons-native"

EXTRA_OESCONS ?= ""
# This value below is derived from $(getconf ARG_MAX)
SCONS_MAXLINELENGTH ?= "MAXLINELENGTH=2097152"
EXTRA_OESCONS:append = " ${SCONS_MAXLINELENGTH}"
scons_do_configure() {
	if [ -n "${CONFIGURESTAMPFILE}" -a "${S}" = "${B}" ]; then
		if [ -e "${CONFIGURESTAMPFILE}" -a "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${CLEANBROKEN}" != "1" ]; then
			${STAGING_BINDIR_NATIVE}/scons --directory=${S} --clean PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS}
		fi

		mkdir -p `dirname ${CONFIGURESTAMPFILE}`
		echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE}
	fi
}

scons_do_compile() {
	${STAGING_BINDIR_NATIVE}/scons --directory=${S} ${PARALLEL_MAKE} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} || \
	die "scons build execution failed."
}

scons_do_install() {
	${STAGING_BINDIR_NATIVE}/scons --directory=${S} install_root=${D}${prefix} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} install || \
	die "scons install execution failed."
}

do_configure[vardepsexclude] = "SCONS_MAXLINELENGTH"
do_compile[vardepsexclude] = "SCONS_MAXLINELENGTH"
do_install[vardepsexclude] = "SCONS_MAXLINELENGTH"

EXPORT_FUNCTIONS do_configure do_compile do_install