为什么“cabal sdist”不包含所有“构建所需的文件”?

时间:2011-01-09 13:57:02

标签: haskell cabal

根据wiki条目,

  

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

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

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

并且由.hs以外的src/以下的其他src/MyMain.hs个文件组成。例如,src/Utils.hs和其他一些人。

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

作为一个附注,使用GNU Autotools,有一个make distcheck目标,它首先构建一个源代码tarball,然后尝试通过新生成的source-tarball构建项目,从而确保一切&好的。是否有类似于cabal的内容,以确保我的源代码内容有效?

1 个答案:

答案 0 :(得分:4)

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

  other-modules: Utils AFewOthers

分发版仅包含.cabal文件中列出的源文件。 Cabal没有其他方法可以检测包中的源文件。您仍然可以构建,因为cabal build调用ghc --make,ghc将查找并编译所需的所有源文件。