2015-10-16 23 views
8

Dire che ho un programma di console che ha un'opzione per visualizzare la sua versione . Attualmente ogni volta che aggiorno la versione nel file .cabal ho bisogno di passare al codice sorgente e aggiornare la costante - rappresentazione della stringa del numero di versione attuale . Questo è contro il principio ASCIUTTO e ora sono chiedendo, è possibile ottenere la versione del mio progetto come definito nel file .cabal dal codice sorgente? Forse Cabal definisce qualche macro CPP o qualcos'altro?C'è un modo per ottenere la versione del pacchetto Cabal nel codice sorgente del pacchetto?

risposta

5

Infatti Cabal consente di accedere alle informazioni dal file .cabal nel programma . According to Cabal documentation, è possibile importare speciale modulo che esiste durante la costruzione del pacchetto, come questo:

import Paths_packagename (version) 
import Data.Version (showVersion) 

myVersion :: String 
myVersion = showVersion version 

Il modulo fornisce Paths_packagenameversion di tipo Version.

Problemi correlati