设置一个qbs项目中声明的属性

时间:2017-07-25 10:25:43

标签: qbs

我有一个典型的应用程序开发场景,库+应用程序,都是qbs项目。 在库项目中,我将布尔属性staticBuild默认为true,如下所示:

Project { // the library

    property bool staticBuild: true

    Product {
        type: staticBuild ? "staticlibrary" : "dynamiclibrary"
        name: "Lib"
    }
}

在应用程序项目中,我使用Depends项将Lib作为依赖项添加如下:

Project { // Application

    Product {
        type: "application"
        Depends { name: "Lib" }
        Lib.staticBuild: false // want to link to a dll.
    }
}

但是这个属性引用不起作用,我收到错误告诉我该属性未被声明。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

首先,图书馆甚至没有这个属性;它的父项目呢。但即使它确实如此,它也不会从外部可见,更不可能。请记住,库只存在一次,而可能存在许多依赖项。因此,如果您想要决定如何构建库,则需要在更高级别执行此操作,两个产品都会从中获取信息。这可能是一个共同的父项目(通常是顶层项目),也可能是两个产品都吸引的项目特定模块。重点是决策是在一个中心位置。