我制作了自己的 cabal 包(我们称之为 package-1),其中包含两个目标,一个库和一个可执行文件。库部分有一个构建依赖列表,而可执行文件有另一个更大的构建依赖列表。
现在我创建了 package-2,它在其 build-depends 部分列出了 package-1。我只想引入 package-1 的库目标中列出的依赖项。但它似乎引入了 package-1 所有部分中列出的所有依赖项,包括可执行目标的依赖项。
有什么方法可以将依赖图修剪为 package-1 中的库,还是我必须将该库目标分解为一个单独的独立包?
最佳答案
你可以把Buildable: False
可执行,然后在需要时使用 cabal build Foo
显式构建它,或通过标志( cabal configure -fbuild-foo
或 -fbuild-executables
)。
可能有用的示例:Cabal Multiple Executables
关于haskell - 当你依赖一个 cabal 包时,它似乎会在所有 cabal 节中引入依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723186/