capnproto.cpp

为 C++ 语言提供对 Cap'n Proto 的支持。 更多信息...

Qbs 1.17

属性

详细说明

capnproto.cpp 模块通过使用 capnpc 工具从 proto 定义文件生成 C++ 头文件和源文件,提供对 Cap'n Proto 的支持。

一个简单的 qbs 文件使用 Cap'n Proto 可以写成如下:

CppApplication {
    Depends { name: "capnproto.cpp" }
    files: ["foo.capnp", "main.cpp"]
}

生成的头文件现在可以包含在 C++ 源文件中

#include <foo.capnp.h>

int main(int argc, char* argv[]) {
    ::capnp::MallocMessageBuilder message;

    auto foo = message.initRoot<Foo>();
    foo.setAnswer(42);
    return 0;
}

相关的文件标签

标签自动标记的文件名描述
"capnproto.input"*.capnp1.17.0具有此标签的源文件被视为 capnpc 编译器的输入。

依赖关系

此模块依赖 capnp 模块,如果 useRpc 属性为 true,则还依赖 capnp-rpc 模块。这些模块通过 模块提供者 通过 pkg-config 工具创建。

属性文档

编译器名称 : 字符串

capnp 二进制文件名称。

默认值: "capnpc"


编译器路径 : 字符串

Protocol binary 的路径。

使用此属性以覆盖自动检测的位置。

默认值: auto-detected


导入路径 : 路径列表

传递给 capnpc 工具的 --import-path 选项的导入路径列表。

默认值: []


输出目录 : 字符串

capnpc 编译器生成的文件放置的目录。

默认值: product.buildDirectory + "/capnp"


使用 RPC : 布尔值

使用此属性以启用对 RPC 框架的支持。

一个简单的 qbs 文件使用 rpc 可以写成如下:

import qbs.Host

Project {
    CppApplication {
        Depends { name: "capnproto.cpp"; required: false }
        name: "server"
        condition: capnproto.cpp.present && qbs.targetPlatform === Host.platform()
        consoleApplication: true
        capnproto.cpp.useRpc: true

        files: [
            "calculator.capnp",
            "calculator-server.cpp"
        ]
    }
    CppApplication {
        Depends { name: "capnproto.cpp"; required: false }
        name: "client"
        condition: capnproto.cpp.present && qbs.targetPlatform === Host.platform()
        consoleApplication: true
        capnproto.cpp.useRpc: true

        files: [
            "calculator.capnp",
            "calculator-client.cpp"
        ]
    }
}

默认值: false


©2023 Qt 公司有限公司。包括在此中的文档贡献均为各自所有者的版权。本提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可协议版本 1.3 的条款许可。Qt 以及相应的徽标是芬兰和/或全世界 Qt 公司的商标。所有其他商标均为其各自所有者的财产。