¿Por qué “sdist cabal” no incluye todos “los archivos necesarios para construir”?

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

  •  08-10-2019
  •  | 
  •  

Pregunta

De acuerdo con la wiki entrada,

Se empaqueta los archivos necesarios para construir el proyecto

Tengo un simples ejecutables de sólo .cabal proyecto, que básicamente contiene

Executable myprog
  hs-source-dirs: src
  main-is: MyMain.hs

y se compone de algunos archivos adicionales a continuación .hs src/ más allá src/MyMain.hs. Por ejemplo, src/Utils.hs y algunos otros.

cabal build tiene ningún problema para construir myprog, y compila los archivos .hs adicionales requeridos src/, pero cabal sdist no lo hace, creando así una fuente-tar disfuncional. ¿Qué estoy haciendo mal? ¿Cómo le digo Cabal para incluir todos los archivos de origen por debajo de hs-source-directorios?

Como nota lateral, con GNU Autotools, no era un objetivo make distcheck, lo que primero construir una fuente-tar y, a continuación, tratar de construir el proyecto a través de la fuente-tar recién generado, asegurando de este modo bien del todo. ¿Hay algo similar para cabal, con el fin de asegurarse de que mi fuente-tar es el sonido?

¿Fue útil?

Solución

Se deben poner los otros archivos Haskell en el archivo .cabal, dentro de la estrofa Executable.

  other-modules: Utils AFewOthers

La distribución sólo incluye los archivos de origen que se enumeran en el archivo de .cabal. Cabal no tiene otra manera de detectar la fuente que los archivos están en su paquete. Aún se podía construir porque cabal build llama ghc --make y GHC encontrará y compilar todos los archivos de origen que necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top