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

标签 haskell cabal

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

最佳答案

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

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

myVersion :: String
myVersion = showVersion version

模块Paths_packagename提供version类型
Version .

关于haskell - 有没有办法在包的源代码中获取 Cabal 包的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33176905/

相关文章:

haskell - 人们通常如何开发 Haskell 模块?

haskell - 如何为名称中包含非字母字符的库定义 MIN_VERSION_𝑙𝑖𝑏 宏?

haskell - 对于高性能应用服务器,我应该选择Yesod的Warp和snap-server中的哪一个?

haskell - 我如何错误地计算 e^x ?

xml - 为什么 parsecs "choice"组合器似乎停留在第一选择上?

linux - 为什么 "vagrant ssh -c ' cabal build'"会产生一个空的二进制文件?

c - 在 Haskell(或 C)中解析模糊日期

haskell - :~: and :~~: equalities? 和有什么区别

haskell - Cabal - 使用 Cabal 添加构建依赖项,而不是手动修改文件

haskell - 用 Darcs 安装 gtk2hs