Qbs:如何运行简单的终端命令?

时间:2015-07-24 11:17:50

标签: qt-creator qbs

我过去常常使用Makefile,但我当前的项目使用.qbs个文件。如何在不创建或需要文件的情况下通过qbs运行简单的终端命令?类似于make中的虚假规则。

以下作品和节目" awesome"在我的终端。

import qbs 1.0

Project {
    name: "cli"

    Product {
        name: "helloworld"
        type: "application"
        files: "TEST.c"
        Depends { name: "cpp" }
    }

    Product {

        type: ["custom-image"]
        Depends { name: "helloworld" }

        Rule {
            inputsFromDependencies: ["application"]
            Artifact {
                fileTags: ["custom-image"]
            }
            prepare: {
                var cmd = new Command("echo", "awesome")
                return cmd
            }
        }
    }
}

但是我必须在每次运行之前触摸我的虚拟TEST.c文件。没有helloworld依赖关系,规则就不会运行。

有什么想法吗?非常感谢你!

2 个答案:

答案 0 :(得分:0)

它被隐藏在一个非常不明显的地方的文档中,并被Command进一步模糊(这不是正确的方法,哈哈)。我也有你的问题。

你需要的是: http://doc.qt.io/qbs/jsextension-process.html

答案 1 :(得分:0)

我不确定您的最终目标是什么,但您可以使用Transformer{}代替Rule{}Rule{}Transformer{}之间的最大区别在于您不需要输入Transformer{}的任何输入。

另见Transformer.alwaysRun属性。

https://doc.qt.io/qbs/transformer-item.html