我想将一些自定义的、每个可执行文件/库配置(理想情况下是一整袋键值对,但至少是一个String)从我的.cabal文件一直传递到Setup.hs's buildHook。
作为参考,buildHook的参数为:
buildHook
:: PackageDescription
-> LocalBuildInfo
-> UserHooks
-> BuildFlags -> IO ()
所以我希望的是PackageDescription's library/executables字段中的某些内容,可以让我访问自定义字段,而不会破坏所有其他 Cabal 阶段,我可以将其放入.cabal文件中。这是一个虚构的例子,基本上和它一样好:
...
executable my-exe
main-is: my-main.hs
...
plugin-args:
myplugin:
foo: bar
baz: quux
所以我可以检索所有myplugin键/值对以获取"foo" |-> "bar", "baz" |-> "quux"某种关联数据结构,例如HashMap.
请注意,我已经在我Setup.hs的 . 如果需要,我可以覆盖所有Setup.hs钩子以忽略所有内容中的某些设置,buildHook但是,如果某些解决方案需要这样做。