2011-08-20 42 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。如果你有一个解决方案,但已经可以了,但我不打扰。只要记住你可以做这个以备将来参考。 –