如何将自定义命令行参数传递给 Setup.hs

How to pass custom command line arguments to Setup.hs

我有 stack 个项目。我希望能够将我自己的参数传递给 Setup.hs,以便我可以自定义构建过程。我该怎么做?

这可能取决于您定制的构建过程。 Setup.hs 有一个 main 函数,所以你可以通过 getArgs 解析参数并做具体的事情;或者,如果您想传递参数,则可以使用 UserHooks,例如:

defaultMainWithHooks (simpleUserHooks {preBuild = xxx, postClean = yyy, ... } )

每个挂钩接受 Args

显然我还没有找到比使用自定义环境变量更好的解决方案。而在 Setup.hs 你可以调用 lookupEnv 函数来检查所需的环境变量。

此外,还有 Shake 构建工具,它旨在自定义构建过程,应该优先于 Setup.hs 配置。