【问题标题】:How can I add a task after do_deploy()?如何在 do_deploy() 之后添加任务?
【发布时间】:2017-09-09 05:19:45
【问题描述】:

我写了一个配方,我想在do_deploy()之后执行一个任务:

[...]

inherit deploy

[...]

do_deploy () {
    echo "do_deploy() has been called."
}
addtask deploy after do_compile

do_after_deploy () {
    echo "do_after_deploy() has been called."
}
addtask after_deploy after do_deploy

当我构建配方时,do_deploy() 任务被执行。但是,after_deploy() 任务不是。

当我使用bitbake my_recipe -c after_deploy 手动执行任务时,任务中的指令将被执行。

这是什么原因? do_deploy() 是最后一个任务,BitBake 不允许我在它之后添加任务吗?

【问题讨论】:

    标签: yocto bitbake


    【解决方案1】:

    do_deploy() 默认执行,因为 base.bbclass 恰好使 do_build(默认任务)依赖于 do_deploy

    你应该能够让你的新任务默认运行

    addtask after_deploy after do_deploy before do_build
    

    【讨论】:

    • +1 答案,因为它在令人沮丧的依赖追逐之后对我有用。但是对于我的生活,我无法想象为什么你必须明确添加 before do_build 以使其按预期工作。默认行为是 do_infinity 之前 还是类似的无益行为?
    • addtask 定义了任务应该执行的顺序,它不决定是否应该执行。要运行的实际任务以向后的方式决定:build 是最终任务,但在构建之前必须执行构建需要的所有任务(等等)。所以before do_build 确保示例任务确实得到执行。
    猜你喜欢
    • 2015-02-26
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多