ConfigFlags { configConfigurationsFlags } field should contain flags which are defined in .cabal file, but aren't specified in command line with -flags=... #768

bos opened this Issue May 24, 2012 · 3 comments


None yet

3 participants

bos commented May 24, 2012

(Imported from Trac #778, reported by @nartamonov on 2010-12-17)

I have custom Flag declaration in .cabal file:

Flag debug

Description: Build with debug support Default: True

and some conditionals (if flag(debug) ...) which depend on this flag. In custom Setup.hs I use data structure Distribution.Simple.Setup.ConfigFlags? and its field configConfigurationsFlags to get value of 'debug' flag. But it seems that field contains flag entry only when I explicitly mention flag during configuration phase in command line with '-fdebug' or '--flags=debug'.

I think it is wrong because even if I don't mention flag in command line he will be initialized to True and conditionals (in *.cabal) which depend on it will be evaluated according to this default value. It would be awesome if I could access flag with its implicitly assigned value via ConfigFlags? { configConfigurationsFlags }.

My custom Setup.hs machinery heavily depends on values of such flags, and it is inconvenient to explicitly define all of them via command line during configuration phase.


bos commented May 24, 2012

(Imported comment by @nartamonov on 2010-12-17)

Small snippet from Setup.hs which shows how I use ConfigFlags? { configConfigurationsFlags }:

customBuild :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
customBuild descr buildInfo hooks flags = {- ... skipped ... -}
  where debugFlag = lookup (FlagName "debug") $ configConfigurationsFlags $ configFlags buildInfo
main = defaultMainWithHooks simpleUserHooks {
  hookedPrograms = [qmake, make],
  buildHook = customBuild }
bos commented May 24, 2012

(Imported comment by lemming on 2010-12-17)

Would a solution as proposed in #836 help you?

@ttuegel ttuegel added this to the _|_ milestone Apr 23, 2015

No response for NEEDINFO since 2010. Move to close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment