如何在MSBuild中自动执行两阶段代码生成?

时间:2019-01-28 12:09:49

标签: c++ msbuild msbuild-task

我想通过以下两个步骤来自动构建和运行一个输出DLL的代码生成器:

  1. 用户用C ++编写常规类,并使用库提供的main.cpp进行编译(类似于Catch单元测试库的工作方式)。库的安装路径包含main.cpp,如果用户不必直接引用(嘈杂),我希望这样做。
  2. 然后用户多次运行生成的可执行文件,每个“配置”运行一次,每次发出一个.obj。最后,将这些.obj文件链接在一起以形成最终的.dll

在命令行上,它看起来像(大致):

# this command might link to one set of dependencies
cl gen1.cpp gen2.cpp gen3.cpp %LIBROOT%\main.cpp /link [...] /out:generator.exe

# run the generator and get object files
generator.exe %CONFIG1% /out:config1.out
generator.exe %CONFIG2% /out:config2.out

# link the objects together with a potentially different set of dependencies
link config1.out config2.out [...] /DLL /out:project.dll

如何在MSBuild中自动执行此操作?我必须创建自定义项目类型吗?我可以重用部分(或大多数)现有的C ++目标吗?理想情况下,我只想简单地包含一个自定义目标文件,让用户在属性中指定必要的元数据,然后让构建系统确定其余部分。

0 个答案:

没有答案