I think the mutex flags might be needed. For example, if my program use accelerate and I want my program can use both of cuda, llvm, (etc) as the backend for accelerating, I need to write a lot of if-statements in cabal file to control that there will be only one backend to be used. So I think that mutex-flags might be useful.
For example: … flag a default: False flag b default: False flag c default: False flag d default: False ... exec… … if flag(a) && !flag(b) && !flag(c) && !flag(d) build-depends: xx-a … if !flag(a) && flag(b) && !flag(c) && !flag(d) build-depends: xx-b … if !flag(a) && !flag(b) && flag(c) && !flag(d) build-depends: xx-c … if !flag(a) && !flag(b) && !flag(c) build-depends: xx-d … The above codes are also hard to maintain or extend. Following codes will better. … flag a default: False flag b default: False flag c default: False flag d default: False mutex flags: a b c d default: d … if flag(a) build-depends: xx-a if flag(b) build-depends: xx-b if flag(c) build-depends: xx-c if flag(d) build-depends: xx-d ... _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel