2014-07-25 13 views
8

Sto lavorando a un progetto che utilizza C e Haskell. Attualmente sto usando CMake per costruire una libreria e una cabala condivisa C per costruire un eseguibile Haskell. C'è un modo più univoco per fare questo? Posso richiamare cabal dal Makefile generato da CMake o c'è un modo per costruire la libreria C direttamente da Cabal? Grazie.Costruisci il sistema per il progetto che utilizza C e Haskell

+0

Hai davvero bisogno di una libreria C? È possibile specificare i file sorgente C direttamente tramite Cabal e questi verranno compilati e collegati al progetto. –

+1

Sto lavorando su un linguaggio di programmazione che compila l'origine in C come lingua intermedia. Il parser e il generatore di codice C sono scritti in Haskell. Il codice intermedio C viene convogliato al compilatore C di sistema che si collega alla libreria condivisa. Quindi la libreria e l'eseguibile sono entità separate; Non ho bisogno di collegare le cose di haskell con la libreria. – spacepotato

+0

È possibile specificare la modalità di creazione personalizzata nel file cabal ed eseguire semplicemente cmake al momento opportuno durante la generazione della cabala (probabilmente questo è prima o dopo che il pacchetto haskell è stato creato). Vedi la documentazione di ['UserHooks'] (http://hackage.haskell.org/package/Cabal-1.20.0.1/docs/Distribution-Simple.html). – user2407038

risposta

1

CMake potrebbe anche fare quello che vuoi. Tuttavia, duplica molte delle funzionalità della cabala. Quindi puoi chiamare cabal da qualunque strumento di costruzione tu scelga di usare (per cmake, usando un comando personalizzato, per makefile, è abbastanza intuitivo), costruisci binari direttamente (vedi cabal build -v).

Vedere Is it possible to use cmake for Haskell projects?.

Problemi correlati