gpt4 book ai didi

gcc - Homebrew 公式中的替代依赖项(例如用于 gcc)

转载 作者:行者123 更新时间:2023-12-03 15:01:59 25 4
gpt4 key购买 nike

如何在 Homebrew 公式中描述替代依赖项?我想到了两种不同的类型。

1. 替代套餐

我的公式可以依赖包PQ ,但它必须有其中之一。所以,我想要

depends_on 'P'

或者
depends_on 'Q'

我至少需要一个。

2. 同一个包的替代标志

我的公式需要另一个包 X用于构建,它需要一个包 X带有两个标志之一, AB .也就是说,我想要
depends_on 'X' => [:build, 'A']

或者
depends_on 'X' => [:build, 'B']

我至少需要一个。

例子

这些替代依赖项有用的具体示例是依赖于 gcc 的公式。 . gcc有多个包(例如 gcc4[3-9] ),这可以由上面的 #1 支持。 gcc有一面旗帜 enable-all-languages这意味着 enable-java ,所以如果一个公式需要 gcj将使用 #2 来指定替代标志。

最佳答案

我最近发现可以通过选项有条件地确定依赖关系。一般方案是:

option 'with-Q', 'Depend on Q instead of P'

depends_on 'P' if !build.with?('Q')
depends_on 'Q' if build.with?('Q')

这也可以用于具有替代标志的一个依赖项。这个例子取自我的 pdftk formula :

option 'with-java', 'Build gcc using --with-java instead of --with-all-languages'

depends_on 'gcc' => ['with-all-languages'] if !build.with?('java')
depends_on 'gcc' => ['with-java'] if build.with?('java')

这不是处理替代依赖项的完美解决方案,但它可能是 Homebrew 唯一支持的解决方案。

关于gcc - Homebrew 公式中的替代依赖项(例如用于 gcc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21115259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com