[Haskell-cafe] Inject cabal version or VCS version as a CPP macro

Roel van Dijk vandijk.roel at gmail.com
Wed Feb 22 09:25:20 CET 2012

For each package "myPackage" Cabal generates a module containing,
among other things, the package's version as a Haskell value:

> import Paths_myPackage ( version )
> import Data.Version  ( showVersion )
> main = showVersion version

See also "Accessing data files from package code" in

I do not now how to expose information from the VCS.

2012/2/22 Eugene Kirpichov <ekirpichov at gmail.com>:
> Hi,
> I'd like my program to print something like "this is $program 1.0.4 git
> 45fea6b" when invoked with --version, or at least just the 1.0.4 part.
> Can Cabal expose the version as a preprocessor macro by default, or do I
> have to use Build-Type: Custom and add a preprocessing step of my own?

More information about the Haskell-Cafe mailing list