我可以在构建事件中检测构建目标吗?

Dav*_*nan 4 delphi delphi-xe2

我想在构建事件中检测构建目标,即makebuild.

我有预构建事件,将大量C文件编译成对象(.obj),然后将其包含在我的一个Pascal文件中.目前,每次预构建事件运行时都会编译C文件.如果构建目标是make并且对象是最新的,我希望能够跳过此阶段.

能够跳过这个阶段可以在编辑/编译/调试开发模式下显着缩短编译时间.

那么,是否有可能检测到构建目标?

Hen*_*röm 5

鉴于IDE一次只编译一个项目,一种解决方案是注册IOTAProjectCompileNotifier.根据CompileInfo.Mode的值,它可以删除BeforeCompile中的构建事件并将其添加回AfterCompile中.

  • 谢谢.如果我沿着那条路走下去,我会设置一个环境变量,让build事件代码根据env var的值修改它的行为 (2认同)
  • 我喜欢这个解决方案.如果检测到*compile*设置了一个环境变量.除非存在特殊的环境变量,否则您的构建事件应该将所有内容视为构建:这样您对没有安装插件的IDE"安全". (2认同)
  • @cosmin我想这将完成这项工作,但在我看来,它应该由delphi自己处理 (2认同)