簡體   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