根据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
的内容,以确保我的源代码内容有效?
答案 0 :(得分:4)
您应该在.cabal
节中的Executable
文件中列出其他Haskell文件。
other-modules: Utils AFewOthers
分发版仅包含.cabal
文件中列出的源文件。 Cabal没有其他方法可以检测包中的源文件。您仍然可以构建,因为cabal build
调用ghc --make
,ghc将查找并编译所需的所有源文件。