Qbs,如何在 Windows 上配置 .h.in 文件?

Qbs, How can .h.in files be configured on Windows?

我有一个 C/C++ 项目,它是为配置 CMake 而编写的。我正在尝试通过将其转换为使用 Qbs 来学习 Qbs。碰巧在 CMake 中有 .h.in 个文件是使用 configure_file() 函数配置的。例如,在 CMake 中,使用以下代码将名为 bson-version.h.in 的文件转换为 bson-version.h

configure_file (
   "${SOURCE_DIR}/src/bson/bson-version.h.in"
   "${PROJECT_BINARY_DIR}/src/bson/bson-version.h"
)

如何在 Qbs 中实现这一点?我在 Windows 10 x64.

没有这方面的内置功能。不过,您可以轻松地自己实现它。这是草图(未经测试):

Product {
    // ...
    Group {
        files: ["src/bson/bson-version.h.in"]
        fileTags: ["header.in"]
    }
    // ...
    cpp.includePaths: [buildDirectory + "/generated_headers"]
    Rule {
        inputs: ["header.in"]
        Artifact {
            filePath: "generated_headers/bson-version.h"
            fileTags: ["hpp"]
        }
        prepare: {
            // Create JavaScriptCommand and do the replacements
            // via qbs.TextFile. 
        }
    }
}

当然,如果 .in 文件引用 cmake 变量,您将必须在项目中定义等效的 qbs 属性并在规则中考虑它们。