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

时间:2017-09-09 19:16:05

标签: c++ qbs

我有一个C / C ++项目,编写时配置了CMake。我通过将其转换为使用Qbs来尝试学习Qbs。使用.h.in函数在CMake中配置了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上。

1 个答案:

答案 0 :(得分:0)

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

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属性,并在规则中考虑它们。