如何进行Cabal Hook的版本导入

时间:2016-03-05 20:56:07

标签: haskell cabal

我正在写一个非常简单的" hook"对于Cabal而言,它与上一版本一起工作正常,但当我降级"它停止工作Cabal到旧版本1.22,1.20等

原因看起来是由于某些模块的路径不断变化,例如:import Distribution.Simple.LocalBuildInfo

有没有办法在不同版本之间管理这些更改?我需要一个" CPP"宏(如果是哪一个)或有更好的方法来管理它?

1 个答案:

答案 0 :(得分:1)

通常是的,依赖于库版本的代码使用Cabal本身定义的宏通过CPP宏管理它。有关示例,请参阅http://www.edsko.net/2014/09/13/haskell-cpp-macros/。在你的情况下:

#if MIN_VERSION_Cabal(1,22,0)
    -- something working in Cabal 1.22 or above
#else
    -- something working in Cabal versions prior to 1.22
#endif

这不理想,我会给你的。