我正在尝试学习如何使用boost build。对于初学者,我想在一个xsd文件上运行codesynthesis xsd工具来生成c++代码。此工具将一个文件作为输入,并生成多个输出文件。我很难弄清楚如何使用boost build来做到这一点,而且我找不到任何与我想要做的非常相似的例子。有人能在这里提供一些见解吗?我已经在下面附上了我的代码。谢谢!
import path ;
import type ;
import generators ;
type.register XSD : xsd ;
generators.register-standard xsd.compilexsd : XSD : CPP ;
module xsd
{
actions compilexsd
{
xsd cxx-tree \
--show-sloc \
--generate-doxygen \
--generate-forward \
--generate-serialization \
--output-dir [path.parent($(<))] \
$(>)
}
}
exe app : main.cpp test.xsd ;发布于 2014-08-12 05:57:51
大约七年前,当我试图从结构规范生成代码时,遇到了一个几乎相同的问题。Boost.Build允许声明单个文件的直接转换。
例如:
.y --> .cpp --> .obj然而,没有语法来表达更复杂的依赖树,在这种树中,单个spec文件会生成一整套.cpp文件。解决方法是执行以下操作:
ALWAYS prebuildcmd;PREBUILD_CMD =“您的生成器arg arg arg”;规则Prebuild { local output = SHELL "$(PREBUILD_CMD)“;ECHO $(output);} Prebuild prebuildcmd;
(这意味着脚本不是正常依赖项的一部分,并且必须足够智能,不能在未更改的文件上进行标记)
https://stackoverflow.com/questions/25250727
复制相似问题