我正在写一个非常简单的" hook"对于Cabal而言,它与上一版本一起工作正常,但当我降级"它停止工作Cabal到旧版本1.22,1.20等
原因看起来是由于某些模块的路径不断变化,例如:import Distribution.Simple.LocalBuildInfo
有没有办法在不同版本之间管理这些更改?我需要一个" CPP"宏(如果是哪一个)或有更好的方法来管理它?
答案 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
这不理想,我会给你的。