Warum „Kabale Sdist“ nicht enthalten alle „Dateien zu erstellen erforderlich“?
Frage
Nach dem Wiki Eintrag,
Es Pakete bis die Dateien benötigt, um das Projekt erstellen
Ich habe ein einfache ausführbare Dateien nur für .cabal
Projekt, das im Grunde enthält
Executable myprog
hs-source-dirs: src
main-is: MyMain.hs
und wird von einigen zusätzlichen .hs
Dateien unter src/
über src/MyMain.hs
aus. Z. B. src/Utils.hs
und ein paar andere.
cabal build
hat keine Probleme myprog
Aufbau und erstellt die erforderlichen zusätzlichen .hs
Dateien unter src/
, aber cabal sdist
nicht der Fall, so eine dysfunktionale Quelle-Tarball zu schaffen. Was mache ich falsch? Wie kann ich feststellen Kabale alle Quelldateien unter hs-Source-dirs enthalten?
Als Nebennote, mit GNU Autotool, gab es ein make distcheck
Ziel, das zunächst einen Quelle-Tarball bauen würde, und dann versuchen, das Projekt über den neu generierten Source-Tarball zu bauen, damit alles in Ordnung zu gewährleisten. Gibt es etwas ähnliches für cabal
, um meinen Quelle-Tarball, um sicherzustellen, Ton?
Lösung
Sie sollten die anderen Haskell-Dateien in der .cabal
Datei auflisten, in der Executable
Strophe.
other-modules: Utils AFewOthers
Die Distribution enthält nur Quelldateien, die in Ihrer .cabal
Datei aufgeführt sind. Cabal hat keine andere Art und Weise, die Quelldateien sind in Ihrem Paket zu erkennen. Sie könnten noch bauen, weil cabal build
ghc --make
Anrufe und ghc finden und kompilieren alle Quelldateien es braucht.