我有一个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上。
答案 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属性,并在规则中考虑它们。