Почему «Cabal Sdist» не включает в себя все «файлы, необходимые для сборки»?
Вопрос
Согласно вики Вход,
Он упаковывает файлы, необходимые для создания проекта
У меня есть только простые исполняемые файлы .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
Несмотря на то, что создает дисфункциональный источник-тарбол. Что я делаю неправильно? Как сказать Cabal включить все исходные файлы ниже HS-Source-Dirs?
Как сбоку, с помощью GNU AutoLools, был make distcheck
Цель, которая впервые будет построить источник-тарбол, а затем попытаться построить проект через вновь созданный источник-тарбол, что обеспечивает все в порядке. Есть ли что-то подобное для cabal
, чтобы убедиться, что мой источник-тарбол звучит?
Решение
Вы должны перечислить другие файлы Haskell в .cabal
файл, внутри Executable
Стэнза.
other-modules: Utils AFewOthers
Распределение включает только исходные файлы, которые указаны в вашем .cabal
файл. У Cabal не имеет другого способа обнаружения, какие исходные файлы находятся в вашем пакете. Вы все еще можете построить, потому что cabal build
вызовы ghc --make
, и GHC найдет и скомпилируйте все необходимые исходные файлы.