[Fwd: Cabal and dependencies (Moved from Haskell-Cafe: Haskore dependency trouble)]

Oops, I accidentally discarded this email in some overzealous moderating. -------- Forwarded Message --------
From: Henning Thielemann
To: Bulat Ziganshin Cc: cabal-devel@haskell.org Subject: Cabal and dependencies (Moved from Haskell-Cafe: Haskore dependency trouble) Date: Wed, 12 Jul 2006 14:34:40 +0200 (CEST) On Wed, 12 Jul 2006, Bulat Ziganshin wrote:
Wednesday, July 12, 2006, 1:23:53 PM, you wrote:
I would like to tell Cabal which modules are required and which are supported, or recommended, but not needed. I could split Haskore into several packages, but then again, installation of Haskore and its sub-packages becomes uncomfortable and the Haddock documentation has no longer a common table of contents. I tried to write custom Setup code for finding out which parts of Haskore cannot be installed due to unsatisfied dependencies, but this is more complicated than I hoped.
such feature was already requested by Robert Dockins
in libraries list at June 8. He wrote: "This brings up a feature I have sometimes wanted from Cabal. I'd like to be able to say the following: "Cabal, find and use package X if it exists. Furthermore, when CPPing source code, set a #define HAS_PACKAGE_X so I can do conditional compilation based on the (non-) avaliablility of package X". Is this possible? Difficult? It seems like a nice way to handle a number of problems, including platform- dependencies (as here) and optional features with external dependencies."
you can add your voice to the peoples requesting this feature (i need it, too)
I guess our goals are similar, however I prefer not using a preprocessor. So in case of an unsatisfied package I like simply some modules to be ignored by Cabal. I tried to solve this by myself, by splitting up the monumental Haskore.cabal file into sub-files which depend on each other. However, Cabal cannot handle multiple cabal files. It would have to find out the right order of compilation (I already implemented that successfully with the FGL), but then it had to compile within the same build directory or at least make a monolithic Haddock documentation.
participants (1)
-
Duncan Coutts