Cabal-3.10.1.0: A framework for packaging Haskell software

Copyright | Simon Marlow 2008
Maintainer | cabal-devel@haskell.org
Portability | portable
Safe Haskell | Safe-Inferred
Language | Haskell2010

Distribution.Simple.Build.Macros

Description

Generate cabal_macros.h - CPP macros for package version testing

When using CPP you get

    VERSION_<package>
    MIN_VERSION_<package>(A,B,C)

for each package in `build-depends`, which is true if the version of package in use is `>= A.B.C`, using the normal ordering on version numbers.

TODO Figure out what to do about backpack and internal libraries. It is very suspicious that this stuff works with munged package identifiers

Synopsis

- generateCabalMacrosHeader :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> String
- generatePackageVersionMacros :: Version -> [PackageId] -> String

# Documentation

generateCabalMacrosHeader :: PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> String Source #

The contents of the `cabal_macros.h` for the given configured package.

generatePackageVersionMacros :: Version -> [PackageId] -> String Source #

Helper function that generates just the `VERSION_pkg` and `MIN_VERSION_pkg` macros for a list of package ids (usually used with the specific deps of a configured package).