$(1:D=) 是什么意思?

what does $(1:D=) mean?

我正在阅读某个项目的 Jamrule 文件以了解其构建方式。 但是有一些我无法理解。 比如$(1:D=) or $(1:S=$(sample)) or $(1:G=$(sample)) 这是什么意思?

我在 shell 脚本中搜索了冒号和相等的含义,但找不到它们之间的字母表。

ex) local _s = $(1:D=) ;

$(1) 扩展规则的第一个参数。 $(1:D=foo) 应用一个修饰符,用字符串 foo 替换扩展元素的目录部分(dirname,如果您认为 shell 术语)。特殊情况 $(1:D=) 删除目录部分。修饰符 S 指的是文件名的后缀(又名扩展名),G 指的是 jam 目标名称的 "grist"。

请参阅 Perforce Jam 文档的 Variable Expansion section 以获取完整列表。我可以推荐阅读完整的 Jam 文档以了解具体概念(如 grist)。