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