2011-08-20 53 views
3

我有一個非常大的項目,我試圖開始使用GPS(Gnat編程工作室)而不是我所擁有的項目。ada中的單獨程序

該凸出的命名約定如下:

something.1.ada用於規範

something.2.ada用於身體

parents.son.2.ada爲單獨的程序/功能,其中父母是聲明單獨的功能/程序的地方,兒子是單獨的功能/程序的名稱。 它可能會更復雜,因爲在grandparent.parent.son.2.ada

我的問題是我不能配置GPS識別單獨的功能/程序作爲項目中的源文件。

這是一個巨大的項目,所以更改文件的名稱或代碼本身的任何其他更改不是我的選擇,因爲它會導致太多的麻煩。

如何正確配置GPS?

回答

4

您需要一個包含Naming包的GNAT項目文件。您的命名方案聽起來像Apex命名方案,在本節末尾的GPRbuild User's Guide - 特別是here中進行了討論。

因此,這將是

package Naming is 
    for Casing    use "lowercase"; 
    for Dot_Replacement  use "."; 
    for Spec_Suffix ("Ada") use ".1.ada"; 
    for Body_Suffix ("Ada") use ".2.ada"; 
end Naming; 

我不認爲你需要

for Separate_Suffix ("Ada") use ".2.ada"; 

因爲

它是指在包含獨立機構的文件名使用的後綴。如果未指定,則默認爲與Body_Suffix(「Ada」)相同的值。

+0

所以在我的情況下,我應該定義: 外殼:混合 點更換:_ 規格後綴:.1.ada 體後綴:.2.ada 單獨的後綴:.2.ada 是正確的? 感謝您的幫助 – itay

+0

那麼,你似乎需要小寫字母不混合。我更新了答案,而不是評論,以便獲得格式正確 –

+0

非常感謝你! – itay

2

Simon沒有提到的另一個選擇是在您的程序上運行gnatchopgnatchop是一個程序,它會將所有文件重命名爲Gnat默認查找的名稱。

它的缺點是結果不會以前面的方式命名和排列文件。然而,與手動構建映射文件或調整項目的命名方案相比,它的工作量可能會少很多,直到事情奏效。

+0

謝謝,但西蒙解決方案爲我工作,完全符合他們的方式。 – itay

+0

好吧,我知道我應該發佈新的問題,但論壇聲稱它不符合質量標準... 所以我會問這裏。該項目使用20個以上的專業圖書館。我該如何將這些庫添加到項目中才能編譯? 非常感謝 – itay

+0

@itay - 外部(預建)庫不會進入它。如果您需要編譯更多的Ada源代碼,那麼也需要進行gnatchopped。如果你有一個解決方案,但已經可以了,但我不打擾。只要記住你可以做這個以備將來參考。 –