Pourquoi « sdist cabale » inclut tous les « fichiers nécessaires à la construction »?

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

  •  08-10-2019
  •  | 
  •  

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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top