如何重用 Qbs 项目的属性?

问题描述

CppApplication 和 DynamicLibrary 这两个项目如何重用基础产品项目中定义的属性?我似乎继承是一个解决方案,但检查 https://doc.qt.io/qbs/language-introduction.html#reusing-project-file-code 它没有帮助。 我想要这样的东西:

// common.qbs ------------------------------------
Product
{
    Properties {
        condition: qbs.toolchain.contains("clang")
        cpp.defines: ["COMPILER_CLANG"]
    }
    Properties {
        condition: qbs.toolchain.contains("gcc")
        cpp.defines: ["COMPILER_GCC"]
    }
    Group {
        name: "Common files"
        files: [
           "common.cpp","common.hpp",]
    }
}

// project.qbs ------------------------------------
import "common.qbs" as Common

// app.qbs
CppApplication <inherits> Common
{
    cpp.defines: outer.concat("APP")
}

// dll.qbs
DynamicLibray <inherits> Common
{
    cpp.defines: outer.concat("DLL")
}

解决方法

没有多重继承,所以基本上你有两种选择:要么在两个产品都知道的项目中声明属性(例如顶级项目),要么使用项目特定的模块。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...