[英]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.