代码之家  ›  专栏  ›  技术社区  ›  TheWaterProgrammer

如何在bitbake配方中声明与${bindir}具有相同可见性的自定义变量?

  •  0
  • TheWaterProgrammer  · 技术社区  · 5 年前

    我在用 yocto bitbake 构建自定义linux映像。

    我有两个 bitbake 食谱。 recipe-1 recipe-2 . 配方1 在linux输出映像中创建一个目录。目录名是 mydir

    recipe-1
    
    SUMMARY="Creates direcory"
    LICENSE = "CLOSED"
    
    FILES_${PN} += "${sysconfdir} /mydir"
    
    do_install_append () {
        install -d ${D}/mydir
    }
    

    让我们来谈谈 配方2 . 配方2 想要放置一个名为 myfile 进入 mydir

    recipe-2
    
    SUMMARY="Wants to place a file in mydir created by recipe-1"
    LICENSE = "CLOSED"
    DEPENDS = "recipe-1"
    
    SRC_URI = " file://myfile"
    
    S = "${WORKDIR}"
    
    do_install_append () {
        install -m 600 ${WORKDIR}/myfile ${D}/mydir  # bibake build complains that mydir is not found
    }
    

    问题:
    在我提到的基本配方中 配方2 之后 配方1 自从 配方2 取决于 配方1 .这很好,但bitbake build抱怨 mydir 不被认可。我理解这个问题。我需要做点什么 mydir 看得见 配方2 .我怎么做?

    问题:
    我能做些什么吗 mydir 这是 配方1 ,在我的配方构建系统中是全局变量吗?一个全局变量,比如 ${bindir} , ${datadir} 等如果我能把它作为建筑的一部分 配方1 那么这可能是一个优雅的解决方案吗?

    所以,我希望使用一个自定义变量 ${mydir} 在里面 do_install_append 属于 配方2 ? 在家里做这样的事 是否安装 属于 配方2 .

    install -m 600 ${WORKDIR}/myfile ${D}/${mydir}
    

    可能吗?

    0 回复  |  直到 5 年前
        1
  •  3
  •   Alexander Kanavin    5 年前

    每个配方的安装目的地都是独立的,并且在安装开始时总是空的,因此您需要在其中创建任何目录。其他食谱所做的都没有影响。

    如果要从单个位置设置${mydir},请将其放入一个类中,并使每个菜谱继承该类。

        2
  •  3
  •   pmod    5 年前

    您可以将一些变量mydir放置到。inc文件,并将其包含到两个菜谱中 require directive .