es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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 variable veritysetup en el archivo .bb. En tu archivo meta-qti-bsp/classes/qimage.class, quieres llamar a una función en función de si la variable veritysetup está definida o no.

    Para hacer esto, puedes utilizar el siguiente código:

    if ${@bb.utils.contains('PACKAGECONFIG', 'veritysetup', 'true', 'false', d)}; then
        # Llama a alguna función
    fi
    

    Este código verifica si la variable veritysetup está definida en la variable PACKAGECONFIG. 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 variable PACKAGECONFIG en tu archivo meta-qti-bsp/classes/qimage.class utilizando la variable PACKAGECONFIG_append_class-native. De esta manera:

    PACKAGECONFIG_append_class-native = " veritysetup"
    

    Esto agregará la variable veritysetup a la variable PACKAGECONFIG para la clase class-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.

Comments are closed.