[英]How to keep dcu files in per project folder (e.g.: .\$(Platform)\$(Config)\$(ProjectFilename)?
我在一个项目组中有很多Delphi项目。 我可以将Unit output directory
设置为.\\$(Platform)\\$(Config)
,所有dcu文件将根据platform
和config
值保存在目录中。
在我的构建环境中,我想将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.