有没有办法在包的源代码中获得Cabal包的版本?

时间:2015-10-16 18:07:50

标签: haskell cabal

假设我有一个控制台程序,可以选择显示它 版。目前每当我更新.cabal文件中的版本时,我都需要去 源代码和更新常量 - 当前的字符串表示 版本号。这感觉反对DRY原则,现在我 想知道,是否有可能获得我的项目版本 来自源代码的.cabal文件?也许Cabal定义了一些CPP宏或 别的什么?

1 个答案:

答案 0 :(得分:9)

事实上,Cabal允许从您的.cabal文件中访问信息 程序。 According to Cabal documentation, 您可以导入在构建包期间存在的特殊模块, 像这样:

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

myVersion :: String
myVersion = showVersion version

模块Paths_packagename提供version类型 Version