3

根据维基条目,

它将构建项目所需的文件打包

我有一个简单的仅限可执行文件的.cabal项目,它基本上包含

Executable myprog
  hs-source-dirs: src
  main-is: MyMain.hs

并由以下超出的一些附加.hs文件组成。例如,还有其他一些。src/src/MyMain.hssrc/Utils.hs

cabal build构建没有问题myprog,并编译下面所需的附加.hs文件src/,但cabal sdist没有,因此创建了一个功能失调的源代码压缩包。我究竟做错了什么?如何告诉 cabal 包含 hs-source-dirs 下的所有源文件?

附带说明一下,对于 GNU Autotools,有一个make distcheck目标,它首先构建一个源代码压缩包,然后尝试通过新生成的源代码压缩包构建项目,从而确保一切正常。是否有类似的东西cabal,以确保我的源压缩包是健全的?

4

1 回答 1

4

您应该在文件中的节.cabal内列出其他 Haskell 文件。Executable

  other-modules: Utils AFewOthers

该发行版仅包括您的文件中列出的源.cabal文件。Cabal 没有其他方法可以检测包中包含哪些源文件。你仍然可以构建,因为cabal build调用ghc --make和 ghc 会找到并编译它需要的所有源文件。

于 2011-01-09T14:28:13.237 回答