繁体   English   中英

如何在每个项目文件夹中保存dcu文件(例如:。\ $(平台)\ $(配置)\ $(ProjectFilename)?

[英]How to keep dcu files in per project folder (e.g.: .\$(Platform)\$(Config)\$(ProjectFilename)?

我在一个项目组中有很多Delphi项目。 我可以将Unit output directory设置为.\\$(Platform)\\$(Config) ,所有dcu文件将根据platformconfig值保存在目录中。

在我的构建环境中,我想将Unit output directory设置为.\\$(Platform)\\$(Config)\\$(ProjectFilename)这样所有DCU文件都应保存在当前项目文件标识的自己的目录中。

Project | Options的构建事件Project | Options Project | Options$(ProjectFilename)宏但我无法在Unit output directory使用它。

我想将.\\$(Platform)\\$(Config)\\$(ProjectFilename)为所有项目的Unit output directory ,它将所有DCU文件保存在唯一的项目目录中。

巧合的是我找到了这个答案。 我选择了一个项目和(ms)构建,具有详细的diagnostic 通过研究msbuild的输出,我只需选择一个变量: MSBuildProjectName并在我的optset文件中指定300个项目共享:

<DCC_DcuOutput>.\$(Platform)\$(Config)\$(MSBuildProjectName)</DCC_DcuOutput>

我尝试在IDE中构建所有项目。 令人惊讶的是, Delphi为每个构建的项目创建文件夹,并将DCU文件分别保存在文件夹中。

Build Events预处理器支持一系列宏,其中一些宏等同于某些环境变量。

DCU输出文件夹设置仅支持环境变量 ,而不支持这些宏。

可能的替代方法

要获得每个项目的 DCU文件夹,您可以采用不同的方法,使dcu成为当前项目的子文件夹,例如:

Unit Output Directory: .\dcu

(或者也许只是“dcu”,但我更喜欢包含“。\\”,如果只是为了明确相关设置是有意的)

这实现了保持每个项目的DCU彼此分离的目的,但意味着您不再将所有DCU放在项目文件夹之外的单独位置。

你当然可以在这个相对路径中使用$(platform)和$(config)变量,如果这对你很重要:

Unit Output Directory: .\dcu\$(platform)\$(config)

这是否是一个可接受的妥协,只有你可以说你的情况。

通常,将DCU保留在项目文件夹以外的位置的目的是:

  • 保持项目文件夹“干净”

  • 避免在VCS(SubVersion / Git等)中为每个dcu文件维护一长串“忽略”条目

将DCU保存在项目子文件夹中实现了第一个,第二个问题通过能够仅将DCU子文件夹添加到VCS忽略列表而大大简化,以忽略该DCU文件夹中的任何文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM