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

如何将配方仅限于本地和本地DK?

  •  1
  • kdopen  · 技术社区  · 6 年前

    我明白,只要有一个食谱 xyz.bb BBCLASSEXTEND += " native nativesdk"

    $ bitbake xyz           # 1
    $ bitbake nativesdk-xyz # 2
    $ bitbake xyz-native    # 3
    

    我想要 数字2和3。我明白 希望数字#1成为可能(也许 xyz 拥有GPL v3许可证,因此我从不希望它出现在目标映像中)

    我试着给配方命名 xyz-native.bb BBCLASSEXTEND += " nativesdk"

    $ bitbake xyz-native           # which is what I want
    $ bitbake nativesdk-xyz-native # which is NOT what I want
    

    xyz.bb xyz.inc 然后创建 nativesdk-xyz.bb xyz-native.bb 两者都只需要共同点 xyz公司 文件

    3 回复  |  直到 6 年前
        1
  •  2
  •   lukaszgard    6 年前

    您没有添加必需的类- 本土DK

    $ grep -rn inherit test-layer/recipes-example/example/ 
    test-layer/recipes-example/example/nativesdk-example_0.1.bb:5:inherit nativesdk
    test-layer/recipes-example/example/example-native_0.1.bb:5:inherit native
    

    然后您将看到本地和本地DK配方:

    $ bitbake -s | grep example
    example-native                                        :0.1-r0                                                  
    nativesdk-example                                     :0.1-r0    
    
        2
  •  0
  •   erenbasturk    6 年前

    您应该创建两个相互包含的bitbake配方。第一个bitbake配方将是native和nativesdk,第二个将用于目标。在目标bitbake配方中,您可以在do install步骤中删除与目标文件相关的内容,如下所示。

    xyx.bb(目标配方)

    do_install_append() {
        rm -f ${D}the_files_which_you_want_do_delete
    }
    
        3
  •  0
  •   Ross Burton    6 年前

    如果您的情况是授权,那么有一个更好的解决方案:只需设置 INCOMPATIBLE_LICENSES bitbake不会让任何不兼容的内容进入图像。

    class-target OVERRIDES 如果是的话,请举手 SkipRecipe .