
On 24.10 21:45, Brian Smith wrote:
Couldn't you split this into Gtk and Gtk-Cairo packages, where the latter is only built if Cairo is available? Similarly, in your GUI example, couldn't you have seperate foo and foo-gui packages, and only build the foo-gui package if the GUI libraries are available?
Otherwise, how can you say "I depend on the Gtk package being built with Cairo support" and "I depend on the GUI portion of the foo package?"
In general, optional groups of modules should be split off into separate packages, and there should be a way of building a bundle of related packages together (just like one can build a group of related executables together already).
The problem is that this creates a very large number of packages which may have recursive dependencies (not supported by GHC!). Also in many cases this would result in 1 package -> 10 packages most of which with one module. - Einar Karttunen