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

标签 gcc dependencies homebrew

如何在 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/

相关文章:

C++:链接时gcc找不到静态成员

maven-2 - 将库发布到 Maven 存储库

java - 如何使用homebrew cask升级到最新版本的java JDK?

java - 从不同目录运行 jar 找不到所需的依赖项

c# - 试图了解DependencyProperty

macos - 通过 Homebrew 安装的 MongoDB 无法正常工作

c++ - OSX 上不兼容的 openCV 和 libtiff 库

c - 无法定位 "dereferencing pointer to incomplete type"错误的来源

c++ - 计算文本文件中的行数

c++ - 将 GCC 内联汇编 CMOV 转换为 Visual Studio 汇编器