我在VS2010的编译中有一个Perl脚本,使用多个头文件作为输入自动生成一个头文件。
换句话说,script.pl读取a.h、b.h、c.h,生成z.h。
我该如何设置依赖关系,以使得每当一个输入头文件发生更改时,都会重新运行这个脚本?
我在VS2010的编译中有一个Perl脚本,使用多个头文件作为输入自动生成一个头文件。
换句话说,script.pl读取a.h、b.h、c.h,生成z.h。
我该如何设置依赖关系,以使得每当一个输入头文件发生更改时,都会重新运行这个脚本?
我不知道是否可以基于依赖关系/文件系统检查自动重新运行它,但是您肯定可以在项目或解决方案中添加自定义预构建步骤来直接调用perl脚本。在VS2010中,转到“项目”菜单,选择“属性...”,然后转到“生成事件”选项卡。在预构建事件命令行框中,键入调用script.pl的命令行。
请查看MSDN文档以获取有关构建路径的一些有用的宏和快捷方式。此外,该页面确实指出
注意
如果项目已经是最新的且没有触发任何构建,则预构建事件不会运行。
因此,如果项目中的任何文件没有更改,它可能不会运行script.pl,但对a.h
、b.h
或c.h
的更改应该足以确保生成z.h
。除非您没有将上游头文件添加到项目中...这可能是另一个问题。
如果是这种情况,我想到的解决方法是创建一个名为“HeaderBuild”的第二个虚拟项目,其唯一任务是包含所需的.h
文件,调用script.pl
并将z.h
输出复制到您真正的项目头文件目录中。确保虚拟项目在真实项目之前运行,然后您就可以开始了。