[Haskell-cafe] Dependency trickery

Malcolm Wallace malcolm.wallace at cs.york.ac.uk
Sun Jan 17 09:25:39 EST 2010


>> Suppose I write some code that can work with Gtk2hs or wxHaskell.
>> How do I go about making that into a package?
>
> You just need to add a flag 'gtk2hs' and then construct the
> Build-Depends depending on the value of the flag.  However, if
> e.g. that flag is by default True, then users of wxHaskell will
> have to manually change its value.  I.e. it is not automatic
> based on what the user has on his system.

Not true.  The value of the flag *is* determined automatically based  
on what packages you already have on your system.  For instance, if  
your cabal file says

   Flag hasGTK
     Default: True
   Library
     if hasGTK
       Build-Depends: gtk2hs
     else
       Build-Depends: wxHaskell

and your installed system has wx but not gtk, then it will still  
select the wx branch, regardless of the value of the flag default.   
The only meaning of the default value is, if *both* possible solutions  
could potentially build successfully, then which one will be preferred.

Regards,
     Malcolm



More information about the Haskell-Cafe mailing list