Haskell “为什么?”;“阴谋集团sdist”;“不包括所有”;“生成”所需的文件;?

Haskell “为什么?”;“阴谋集团sdist”;“不包括所有”;“生成”所需的文件;?,haskell,cabal,Haskell,Cabal,根据条目, 它打包了构建项目所需的文件 我只有一个简单的可执行文件.cabal项目,它基本上包含 Executable myprog hs-source-dirs: src main-is: MyMain.hs 并且由src/下面的一些额外的.hs文件组成,这些文件位于src/MyMain.hs之外。例如,src/Utils.hs和其他一些 cabal build在构建myprog时没有问题,并且编译了src/下面所需的额外.hs文件,但是cabal sdist没有问题,因此创建了一个

根据条目,

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

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

Executable myprog
  hs-source-dirs: src
  main-is: MyMain.hs
并且由
src/
下面的一些额外的
.hs
文件组成,这些文件位于
src/MyMain.hs
之外。例如,
src/Utils.hs
和其他一些

cabal build
在构建
myprog
时没有问题,并且编译了
src/
下面所需的额外
.hs
文件,但是
cabal sdist
没有问题,因此创建了一个功能失调的源tarball。我做错了什么?我如何告诉阴谋集团在hs源目录下包含所有源文件


作为旁注,在GNU Autotools中,有一个
make distcheck
目标,它将首先构建一个源tarball,然后尝试通过新生成的源tarball构建项目,从而确保一切正常。为了确保我的源代码tarball是正确的,
cabal
是否有类似的东西?

您应该在
.cabal
文件中的
可执行文件中列出其他Haskell文件

  other-modules: Utils AFewOthers
发行版仅包括
.cabal
文件中列出的源文件。Cabal没有其他方法来检测包中有哪些源文件。您仍然可以构建,因为
cabalbuild
调用
ghc--make
,而ghc将找到并编译它需要的所有源文件