Sea*_*her 5 homebrew dependencies gcc
如何在Homebrew公式中描述替代依赖项?我正在考虑两种不同的类型.
我的公式可以取决于包装,P或者Q它必须有一个.所以,我也想要
depends_on 'P'
Run Code Online (Sandbox Code Playgroud)
要么
depends_on 'Q'
Run Code Online (Sandbox Code Playgroud)
我至少需要一个.
我的公式需要另一个X用于构建的包,它需要一个X带有两个标志之一的包,A和B.也就是说,我也想要
depends_on 'X' => [:build, 'A']
Run Code Online (Sandbox Code Playgroud)
要么
depends_on 'X' => [:build, 'B']
Run Code Online (Sandbox Code Playgroud)
我至少需要一个.
这些替代依赖项有用的具体示例是依赖于的公式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')
Run Code Online (Sandbox Code Playgroud)
这也可以用于具有替代标志的一个依赖项。这个例子取自我的pdftk公式:
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')
Run Code Online (Sandbox Code Playgroud)
这不是处理替代依赖项的完美解决方案,但它可能是 Homebrew 支持的唯一解决方案。
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |