有一个单独的目录来存储目标文件是有用的。但是,如果目录尚不存在,gprbuild
会抱怨。我使用hg
进行版本控制,它不允许你跟踪空目录(AFAIK也适用于git
),但即使这样做,也很遗憾不得不弄乱存储库与空目录。 gprbuild
有一个选项--create-missing-dirs
(简称-p
),它完全按照它在锡上的说法完成。这非常有用。但是,我想知道的是,是否有某种方法可以在.gpr
文件中设置它。必须提醒我的用户使用-p
选项进行编译,而不是只能运行gprbuild project
,这是令人讨厌的。不幸的是,gprguild
的文档有这样的说法:
默认情况下,GPRbuild会检查项目文件中指定的对象,库和exec目录是否存在。 Switch
-p
指示GPRbuild尝试创建缺少的目录。请注意,这些开关可以在主项目的包Builder中指定,但它们在那里是无用的,因为在评估Builder切换之前,目录已经存在或项目文件的处理失败,因为至少有一个缺失。目录
当然必须有办法做我正在描述的事情吗?
答案 0 :(得分:7)
gprbuild 的最新版本(自2016年8月19日起,请参阅Git)支持Create_Missing_Dirs
属性。
project Foo is
for Create_Missing_Dirs use "True";
...
GNAT GPL 2017就是这样。
答案 1 :(得分:-1)
如果您要提交一个空目录,您可能不希望git
/ hg
跟踪该目录中的文件。一种解决方案是将一个隐藏的*跟踪文件放在目录中,并添加规则以忽略所有其他文件。
对于hg
,.hgignore
必须位于顶层(据我所知),因此您需要添加.keep
文件(或其他一些描述名称) )在您要保留的目录中,并向.hgignore
添加规则以忽略其他所有内容。
对于git
,您可以在目录中放置一个.gitignore
文件,并使用规则忽略所有文件。在这种情况下,.gitignore
本身将是隐藏的跟踪文件。 (奖励:规则更容易编写)
.
开头的文件的系统上