Почему «Cabal Sdist» не включает в себя все «файлы, необходимые для сборки»?

StackOverflow https://stackoverflow.com/questions/4639526

  •  08-10-2019
  •  | 
  •  

Вопрос

Согласно вики Вход,

Он упаковывает файлы, необходимые для создания проекта

У меня есть только простые исполняемые файлы .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 найдет и скомпилируйте все необходимые исходные файлы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top