cabal 文件中的标志

Flags in cabal files

我正在遵循包开发的用户指南:https://www.haskell.org/cabal/users-guide/developing-packages.html#quickstart

我卡在了 Flags 部分。如何将标志传递到我的文件?是在build时间吗?我试图搜索它,但没有找到有用的信息 - 只有命令选项 --flags.

cabal build -f debug 无效

Flag Debug
    Description: Enable debug support
    Manual: True
    Default: False

BenchMark bench-foo
    ghc-options:        -Wall
    type:               exitcode-stdio-1.0
    default-language:   Haskell2010
    build-depends:      base, time
    main-is:            bench-foo.hs
    if flag(debug) && os(windows)
        main-is:        bench-bar.hs

将标志传递给 cabal configure,例如:

cabal configure -f debug

使用 cabal-2.1.0 你可以这样做:

cabal new-build -f debug 

使用堆栈,使用

stack build --flag <pkg>:debug

<pkg>设置debug标志为True,或使用--flag '*:debug'为所有包设置debug标志为True .将 debug 替换为 -debug 以将 debug 标志设置为 False

您还可以在 stack.yaml 文件中指定标志设置。例如,要为 <pkg>debug 标志设置为 False,请将其添加到您的 stack.yaml:

flags:
  <pkg>:
    debug: false