我們通過「工具|選項|環境變量」創建變量這樣的:組織的搜索路徑
$(Sources) = D:\Sources\Delphi
$(OurLib) = $(Sources)\OurLib\Src
$(OurApp1) = $(Sources)\Applications\App1\3.x
$(ThirdParty) = $(Sources)\ThirdPartyComponents
我們在項目搜索路徑中使用這些變量這樣的:
($OurApp1)\Src\Core;($OurApp1)\Src\GUI;($OurApp1)\Src\Plugins;$(ThirdParty)\JVCL
但這自德爾福2009年以來已經破裂(同時固定),因爲這些變量不再被完全評估(見QC#73276)。所以編譯器找不到目錄中的文件。解決方法:僅使用環境變量中的完整目錄。
我們使用這種方法,因爲在所有開發人員機器和構建服務器上都可以找到文件,我們只需將$(Sources)指向正確的位置即可。
我們沒有任何東西在我們的全局庫路徑中(Delphi默認值除外),因爲這不在版本控制中,並且不會反映在其他開發人員或構建機器上。
一個問題是:如果$(OurLib)中的一個單位決定在另一個新路徑中包含另一個新單元,則所有項目都會因爲沒有找到此新單元而中斷。然後我們必須通過所有項目並添加搜索路徑。 (順便說一句:我真的很討厭的搜索路徑編輯器......不會是一個簡單的備註字段更好的編輯比這個替換/添加/刪除邏輯?)
我們做的不是加入許多單位的另一件事情我們項目。尤其是來自$(OurLib)的所有內容,但我們經常擁有像插件這樣的單元,只有通過包含它們才能添加功能。對於我們產品的不同版本,我們希望包含不同的單位。由於Delphi總是在.dpr的uses子句中混淆$ IFDEFs,因此我們通過包含名爲「IncludePlugins」的單元來幫助我們,這些單元包含依賴於IFDEF的單元。 但是不包括項目中的單位導致痛苦。單位不會出現在項目中,他們沒有按Ctrl + 12(顯示單元)發現,他們不是在代碼完成顯示等
大家有更好的方法來解決這些問題?
事實上,我們就此別過。我們的構建機器將$(Sources)映射到S:並將得到的二進制文件放在T:創建設置的地方。我們的工具鏈的所有應用程序都不支持更改根目錄。 – 2009-04-23 09:08:12