我们有一个使用自定义对象关系映射系统的 C++ 项目,其中表由 .tbl 文件定义。然后通过代码生成器运行这些代码生成器,该代码生成器为每个生成一个 .h 和一个 .cpp 文件。
我正在尝试在 Visual Studio 2008 和 2010 中使用自定义构建规则。
到目前为止,这就是我所拥有的:
<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
Name="z_dbbld"
Version="8.00"
>
<Rules>
<CustomBuildRule
Name="z_dbbld"
DisplayName="z_dbbld"
CommandLine="$(SolutionDir)\tools\z_dbbld $(InputName)"
Outputs="$(InputName).cpp"
FileExtensions="*.tbl"
ExecutionDescription="z_dbbld $(InputName)"
>
<Properties>
</Properties>
</CustomBuildRule>
</Rules>
</VisualStudioToolFile>
问题是依赖关系。当我在不存在任何文件的干净签出上运行构建时,对于由此规则生成的 .h 文件,我收到“无法打开包含文件”错误。
我尝试将输出更改为“$(InputName).h”,但仍然出现错误。
现在的问题是,这些文件是在代码生成器运行时创建的。如果我再次编译,我没有错误,因为所有文件都是在第一遍中创建的。但这使得从新结帐中进行干净,自动化的构建不起作用。
有任何想法吗?