haskell - ¿Por qué la herramienta cabal no usa Setup.lhs/Setup.hs?
build-process (1)
He agregado una línea putStrLn "Hello"
en la función main
de mi Setup.lhs y esperaba verla cuando se ejecuta cabal configure
o cabal build
. Pero yo no.
Luego compilé Setup.lhs
con ghc --make
y ejecuté ./Setup configure
y se mostró la línea.
Si se hace intencionalmente, no veo ninguna razón detrás de esto e incluso lo necesito en el archivo Setup.lhs
. ¿Me puedes aclarar estas cosas?
Lo más probable es que tenga
build-type: Simple
en su archivo .cabal
Si selecciona el tipo de compilación Simple
, esencialmente promete que su archivo de Setup
no hace más que invocar defaultMain
, y el binario cabal
no lo invocará. Si desea asegurarse de que su archivo de Setup
se ejecute cada vez, cambie la línea a
build-type: Custom
También pregunta acerca de las razones para solicitar el archivo de Setup
todos modos: en realidad, no es necesario si usa el tipo de compilación Simple
. El binario cabal
felizmente lo configurará e instalará sin él. Sin embargo, se considera que es un buen estilo incluir un archivo de Setup
para cualquier paquete, ya que permitirá a los usuarios instalar el paquete que tenga la biblioteca de Cabal
disponible, pero no la herramienta de cabal-install
la cabal-install
(y Hackage exige la presencia de un archivo de Setup
para esta razón).