On Mon, Jan 10, 2011 at 6:16 PM, Duncan Coutts <duncan.coutts@googlemail.com> wrote:

My plan for the command line interface is that cabal
configure/build/install in a dir with multiple .cabal files will act
on all of them. Individual packages, or components within packages
will be selectable by name, e.g. "cabal configure" (configures all
packages) "cabal build foo" (builds just target foo).

+1. This would perfectly fit and improve on my current mode of operation.


I'm not quite sure how to handle name clashes, but I expect we can
work something out. For example, a package A containing exe A and B.
Does A refer to the package (components A and B) or just to the
component A?

I would assume the package, because Cabal is normally all about packages. You can't specify you want to build a particular executable at the moment, can you?

Would Cabal in your scheme track dependencies between multiple packages sharing the same repository? If I have multiple related packages in a single directory, will "cabal build foo" automatically configure and build all packages that foo depends on? How will you hide the module files of all other packages from the compiler while it's building one? I assume you'll copy all the current module files into a separate directory tree before compiling?