C++ 如何将自定义编译器包装注入msbuild或visual studio?

C++ 如何将自定义编译器包装注入msbuild或visual studio?,c++,visual-studio,compiler-construction,wrapper,C++,Visual Studio,Compiler Construction,Wrapper,我已经准备了某种编译器包装,它: 调用原始编译器(只需强制预处理的+标志)生成预处理的C++文件 在预处理的文件上做一些魔术 使用近似原始的参数调用原始编译器,从我神奇地更改的文件生成对象文件 链接可执行文件、静态/共享库等的类似过程 我的包装器设计用于处理gcc、clang和msvc标志 要为cmake项目注入我的“编译器包装器”,使项目或自动工具非常容易(cmake参数、环境变量、自动工具参数等),但是我不知道如何使用Visual Studio解决方案或msbuild来实现这一点 所以问

我已经准备了某种编译器包装,它:

  • 调用原始编译器(只需强制预处理的+标志)生成预处理的C++文件
  • 在预处理的文件上做一些魔术
  • 使用近似原始的参数调用原始编译器,从我神奇地更改的文件生成对象文件
链接可执行文件、静态/共享库等的类似过程

我的包装器设计用于处理gcc、clang和msvc标志

要为cmake项目注入我的“编译器包装器”,使项目或自动工具非常容易(cmake参数、环境变量、自动工具参数等),但是我不知道如何使用Visual Studio解决方案或msbuild来实现这一点

所以问题是:你们知道有什么办法吗?我如何强制msbuild或visual studio使用我的包装器来代替cl?

(我最感兴趣的是msvc 2015 professional,不过这可能并不重要)


我唯一的想法是更改PATH env变量并命名我的包装器cl.exe,但这让我觉得很难看,如果没有更聪明的解决方案,我会非常惊讶。

如果您想要全面的支持,正确的方法可能是创建一个附加的工具集(意味着在正确的位置创建一堆msbuild文件)。您可以看看其他编译器编写者是如何做到这一点的(intel和例如)。否则,请使用“自定义生成工具”或使用makefile项目生成源代码。使用makefiles(无论如何,我支持开箱即用)不是一个解决方案(或最多是最后一个选项),因为这种方式将需要我的工具的潜在用户从头开始创建整个生成配置,仅使用它们(即使我个人讨厌微软在这方面的解决方案,认为每一个认真开发/维护的C/C++项目都应该有cmake,但这并不意味着对于最终用户来说,创建它们并不是一件大事。)。无论如何,感谢您的回答-我将尝试查找如何为clang完成此操作。尚未将此标记为重复,但刚刚找到答案,请参阅。简言之:重写ClToolExe和ClToolPath属性,并将它们指向您的可执行文件。可能重复的可能重复的