Cómo recuperar la variable PACKAGECONFIG desde otra receta en un bbclass.
Para uno de mis requisitos, necesito llamar a tareas específicas según si una variable “packageconfig” está definida en otras recetas o no.
Por ejemplo:
Tenemos una receta llamada recipes-crypto donde, en el archivo .bb tenemos:
PACKAGECONFIG[veritysetup] = “–enable-veritysetup,–disable-veritysetup”
BBCLASSEXTEND = “native nativesdk”
Luego, en mi archivo “meta-qti-bsp/classes”, tengo “qimage.class”, donde quiero hacer algo como esto:
if ${@bb.utils.contains(‘PACKAGECONFIG’, ‘veritysetup’, ‘true’, ‘false’, d)}; then
# Llamar a alguna función
fi
Pero da errores:
ERROR: ParseError en /local/mnt/workspace/PINTU/WORK/Y2021/NAD-CORE-WORK/NEW_C10_30Nov/poky/meta-qti-bsp/classes/qimage.bbclass:102: línea no analizada: ‘if ${@bb.utils.contains(‘PACKAGECONFIG’, ‘veritysetup’, ‘true’, ‘false’, d)}; then’
¿Cómo puedo hacer que la variable “veritysetup” sea reconocida en mi archivo de clase?
Vi algunos ejemplos y agregué esto al principio:
PACKAGECONFIG_append_class-native = “veritysetup”
Pero con esto también obtengo el mismo error.
Estoy utilizando este comando veritysetup solo durante el tiempo de compilación.
Entonces, quiero ejecutar este comando solo si esta variable “PACKAGECONFIG” está definida.
¿Cuál es la mejor manera de hacerlo?
davy.ai
Para llamar a una tarea específica en función de si una variable de packageconfig está definida en otra receta o no, puedes utilizar la función
bb.utils.contains
en tu archivo de clase.En tu ejemplo, tienes una receta llamada
recipes-crypto
en la que defines la variableveritysetup
en el archivo.bb
. En tu archivometa-qti-bsp/classes/qimage.class
, quieres llamar a una función en función de si la variableveritysetup
está definida o no.Para hacer esto, puedes utilizar el siguiente código:
Este código verifica si la variable
veritysetup
está definida en la variablePACKAGECONFIG
. Si está definida, llamará a la función. Si no está definida, no llamará a la función.Sin embargo, estás obteniendo un error cuando intentas usar este código. Esto se debe a que la variable
veritysetup
no es reconocida en tu archivo de clase.Para solucionar este problema, puedes agregar la variable
veritysetup
a la variablePACKAGECONFIG
en tu archivometa-qti-bsp/classes/qimage.class
utilizando la variablePACKAGECONFIG_append_class-native
. De esta manera:Esto agregará la variable
veritysetup
a la variablePACKAGECONFIG
para la claseclass-native
.Después de hacer esto, deberías poder utilizar la variable
veritysetup
en tu archivo de clase y llamar a la función solo si la variable está definida.