在gprbuild文件中设置--create-missing-dirs选项

7
有一个单独的目录用于存储对象文件是很有用的。然而,如果该目录不存在,gprbuild会发出投诉。我使用hg进行版本控制,无法跟踪空目录(据我所知,这在git中也是如此),即使可以,也不希望在存储库中放置空目录。gprbuild有一个选项,--create-missing-dirs (简称-p),正如其名,可以精确地完成此操作。这非常有用。但是我想知道是否有办法在.gpr文件中设置它。让用户使用-p选项编译,而不是只运行gprbuild项目,这太麻烦了。不幸的是,gprguild的文档有以下描述: 默认情况下,GPRbuild检查项目文件中指定的对象、库和exec目录是否存在。开关-p指示GPRbuild尝试创建丢失的目录。请注意,这些开关可以在主项目的Builder软件包中指定,但它们在那里是无用的,因为要么目录已经存在,要么在评估Builder开关之前就处理了项目文件,因为至少有一个目录丢失。
肯定有一种方法能够实现我所描述的功能,不是吗?
2个回答

10

自2016年8月19日以来(请参见Git),gprbuild的最新版本支持Create_Missing_Dirs属性。

project Foo is
   for Create_Missing_Dirs use "True";
   ...

GNAT GPL 2017已经有这个。


-1

如果您正在提交一个空目录,那么您很可能不希望git/hg跟踪该目录中的文件。一种解决方案是在目录中放置一个隐藏的*跟踪文件,并添加一个规则来忽略所有其他文件。

对于hg.hgignore必须位于顶层(据我所知),因此您需要在要保留的目录中添加一个.keep文件(或其他描述性名称),并添加一个规则到.hgignore以忽略其他所有内容。

对于git,您可以在目录本身中放置一个.gitignore文件,并使用规则来忽略所有文件。在这种情况下,.gitignore本身将是隐藏的跟踪文件。(奖励:规则更容易编写)

  • 在以.开头的文件被视为隐藏的系统上

这是一种选择,是的,我很清楚。但它根本没有回答我的实际问题。 - junius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接