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将找到并编译它需要的所有源文件