在Visual C ++中添加自定义预处理任务

时间:2018-02-16 17:45:44

标签: visual-studio msbuild

我将项目构建工具链从python / MinGW迁移到msbuild / MSVC。 我需要在每次构建之前对某些c ++文件执行额外的预处理。 这是由我自己的python脚本执行的。 有没有办法在不编写扩展名的情况下执行此操作? '自定义构建工具'不允许修改当前的源文件。有没有选择"链"这与构建步骤?

1 个答案:

答案 0 :(得分:1)

  

在Visual C ++中添加自定义预处理任务

由于您不想修改源文件,因此可以使用复制任务将scource文件备份到中间目录:

<ItemGroup>  
    <MySourceFiles Include="c:\MySourceTree\**\*.cpp"/>  
</ItemGroup>

<Target Name="CopyFiles">
    <Copy
        SourceFiles="@(MySourceFiles)"
        DestinationFolder="Destination\Intermediate directory"
    />
</Target>

然后使用csc任务在build:

之前编译它
<ItemGroup>

  <Compile Include="…\Intermediate directory\filename">

 </Compile>

</ItemGroup>

 <Target Name="BeforeBuild">

    <Message Text="Running your python script on the Intermediate directory folder..."/>

 </Target>

有关详细信息,请参阅"Preprocessing" each source file before compilation?

评论更新:

  

问题是关于你是否可以在构建时调用自己的目标   失败。

您可以使用MSBuild命令行指定自定义目标来构建它:

msbuild.exe "YouProjectName.vcxproj" /t:BeforeBuild;Build

然后MSBuild将首先构建您的自定义构建,无论您的构建是失败还是成功。

希望这有帮助。