haskell - mac - ¿Cómo evitar recompilar en este archivo cabal?
instalar cabal (1)
En su sección de ejecutables, agregue la biblioteca en Build-Depends
para que el ejecutable dependa de la biblioteca.
Sin embargo, hay un pequeño problema: también tiene que mover Main.hs
del ejecutable (y cualquier otro archivo fuente específico del ejecutable) a un subdirectorio diferente y especificar un Hs-Source-Dirs
para que no seleccione sube los módulos de la biblioteca estando en la misma carpeta.
executable HaSC
Build-Depends: HaSC
Main-Is: Main.hs
Hs-Source-Dirs: foo -- Directory you moved Main.hs to
Para que esto funcione, deberá especificar Cabal-Version >= 1.8
. Ver boleto Cabal # 89 para los detalles.
He estado trabajando en este proyecto de Haskell, y tengo un archivo cabal para ello. Ahora, mi proyecto está estructurado como una biblioteca que implementa un intérprete simple. También tengo un archivo principal muy corto que debe integrarse en un ejecutable para llamar a la biblioteca. Lo que quiero hacer es:
1) compilar la biblioteca y exponer algunos de los módulos
2) compilar el ejecutable
Tengo un archivo cabal que funciona y parece hacer esto. El problema es que cuando compila el ejecutable, vuelve a compilar todos los módulos que ya se han compilado en el paso (1) . No entiendo muy bien por qué hace esto: ¿hay alguna forma de detenerlo, aparte de crear dos archivos Cabal separados?
Realmente no quiero crear dos archivos Cabal separados, porque parece que a Cabal no le gusta tener ambos archivos Cabal en el mismo directorio, y realmente no quiero configurar un directorio de proyecto separado para el segundo paso, ya que básicamente solo equivale a compilar un solo archivo.
cabal-version: >= 1.6
build-type: Simple
name: HaSC
version: 0.2.3
license: OtherLicense
category: Language
author: Chris B
maintainer: Chris B
copyright: Chris B 2010 - 2011
synopsis: (HA)skell (S)ound (C)hange applier (HaSC) library
description: HaSC implements a little language for applying sound changes to words
homepage: http://www.chrisdb.me.uk/redmine/projects/haskell-sound-change
stability: Alpha
data-files: doc/HaSCDoc.pdf
license-file: LICENSE
library
build-depends:
base >= 4.3,
containers >= 0.3,
parsec >= 3,
parallel >= 3.1,
deepseq >= 1.1,
mtl >= 1.1,
transformers >= 0.2,
text >= 0.10,
text-icu >= 0.6.3,
pretty >= 1,
directory >= 1.1,
filepath >= 1.2
hs-source-dirs: src
exposed-modules: HaSC.IO.Disk,
HaSC.IO.Memory,
HaSC.Exec
other-modules: HaSC.AST,
HaSC.IO,
HaSC.IdentMap,
HaSC.Parse,
HaSC.Regex,
HaSC.Representation,
HaSC.Transformations,
HaSC.Search,
HaSC.State
executable HaSC
GHC-Options: -rtsopts
hs-source-dirs: src
main-is: Main.hs