Pourquoi « sdist cabale » inclut tous les « fichiers nécessaires à la construction »?
Question
D'après l'entrée wiki ,
Il empaquette les fichiers nécessaires à la construction du projet
J'ai simples executables-seul projet .cabal
, qui contient essentiellement
Executable myprog
hs-source-dirs: src
main-is: MyMain.hs
et est composé de certains fichiers .hs
supplémentaires ci-dessous src/
au-delà src/MyMain.hs
. Par exemple, src/Utils.hs
et quelques autres.
cabal build
n'a pas de problèmes de construction myprog
et compile les fichiers .hs
supplémentaires requis ci-dessous src/
, mais cabal sdist
n'a pas, créant ainsi une source tarball dysfonctionnel. Qu'est-ce que je fais mal? Comment puis-je dire cabale d'inclure tous les fichiers source ci-dessous hs-source-dirs?
Comme un côté note, avec GNU Autotools, il y avait une cible de make distcheck
, qui d'abord construire une source tarball, et puis essayer de construire le projet via la source tarball nouvellement généré, assurant ainsi le ok de tout. Y at-il quelque chose de similaire pour cabal
, afin de vous assurer que ma source tarball est son?
La solution
Vous devriez lister les autres fichiers Haskell dans le fichier .cabal
, dans la strophe Executable
.
other-modules: Utils AFewOthers
La distribution comprend uniquement les fichiers source répertoriés dans votre fichier .cabal
. Cabal n'a pas d'autre façon de détecter les fichiers source sont dans votre package. Vous pouvez toujours construire parce que cabal build
appelle ghc --make
et GHC trouver et compiler tous les fichiers source dont il a besoin.