可以使用以下形式覆盖cabal的简单构建系统的Setup.hs
默认构建挂钩:
main = defaultMainWithHooks simpleUserHooks { buildHook = myBuildHook }
哪里
myBuildHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
因此我们同时获得PackageDescription
和LocalBuildInfo
,但如果我们look at the latter,我们可以看到它包含前者,记录名为localPkgDescr
。
鉴于此,我问:
PackageDescription
的原因吗? buildHook
,PackageDescription
会被使用?答案 0 :(得分:2)
似乎第一个PackageDescription
基本上代表原始<pkg>.cabal
文件,而包装PackageDescription
包含“已解决”的包描述,其中已删除标记,并且所有条件都包含已经解决了。
我无法更仔细地检查同时使用这两种结构的代码,所以我不是100%肯定这种行为。