Perché “sdist cabala” non include tutti i file necessari per “costruire”?

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

  •  08-10-2019
  •  | 
  •  

Domanda

Secondo il wiki ,

  

Si confeziona il backup dei file necessari per costruire il progetto

Ho un semplice eseguibili solo progetto .cabal, che contiene sostanzialmente

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

ed è composto da alcuni file aggiuntivi .hs sotto src/ oltre src/MyMain.hs. Per esempio, src/Utils.hs e pochi altri.

cabal build non ha problemi di costruzione myprog, e compila i file .hs aggiuntivi richiesti sotto src/, ma cabal sdist non lo fa, creando così un disfunzionale sorgente tarball. Che cosa sto facendo di sbagliato? Come faccio a dire cabala per includere tutti i file sorgente sotto hs-source-dirs?

Come un lato nota, con GNU Autotools, c'era un obiettivo make distcheck, che prima costruire una fonte-tarball, e quindi cercare di costruire il progetto tramite la fonte-tarball appena generato, garantendo così ok del tutto. C'è qualcosa di simile per cabal, al fine di assicurarsi che la mia fonte-tarball è sana?

È stato utile?

Soluzione

Si dovrebbe elencare gli altri file Haskell nel file .cabal, all'interno della strofa Executable.

  other-modules: Utils AFewOthers

La distribuzione include solo i file di origine che sono elencati nel file .cabal. Cabal non ha altro modo per rilevare quale fonte file sono nel pacchetto. Si potrebbe ancora costruire perché cabal build chiama ghc --make, e GHC trovare e compilare tutti i file di origine di cui ha bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top