Stack:如何在 `Setup.hs` 中使用多包依赖?

Stack: How can I use a multi-package dependency in `Setup.hs`?

我有一个 stack 多包项目,其中 "multi-package" 是 zip-conduit-0.2.2.2(我需要调整一些依赖版本以使其与 nightly-2015-10-12 一起编译) .

我在主包中使用 zip-conduit,我也想在 Setup.hs 中使用,以便能够打包 zip 文件。

我的 cabal 文件中有 build-type: Customstack build 尝试构建 Setup.hs。问题是构建 Setup.hs 找不到依赖项 zip-conduit-0.2.2.2.

我可以在 Setup.hs 中使用多包依赖吗?如果是这样怎么办?如果没有,我的选择是什么?

注:我看过这个参考https://github.com/commercialhaskell/stack/pull/899,但我没看懂。

我认为无法为 Setup.hs 本身声明包依赖关系。

一些想法:

  • 要求依赖包已经安装

  • Setup.hsshellout到外部命令执行压缩,只要求外部命令必须存在。

  • 使安装程序成为 cabal 文件中的附加 exe 目标。在继续构建库之前,Setup.hs 可以构建安装程序目标,然后构建库,然后使用构建的安装程序 exe 安装库。

您似乎需要将该软件包的 explicit-setup-deps 设置设为 true。不幸的是,Stack 无法自动处理这种情况,但没有 .cabal 文件中的依赖信息,似乎别无选择。

如果您对此处的历史感兴趣,请参阅文档中的链接问题。