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