> > cabal-install: it does not work well with packages that have flags > > because it does not know what flags to use when building dependencies. > > Really, packages with conditionals are different packages in one > > cabal file. > > Packages are not supposed to expose different APIs with different flags > so I don't think that's right. Under that assumption cabal-install can > in principle resolve everything fine. I'm not claiming the current > resolution algorithm is very clever when it comes to picking flags > (though it should always pick ones that give an overall valid solution) > but there is certainly scope for a cleverer one. Also, the user can > always specify what features they want, which is what systems like > Gentoo do. > > Do you have any specific test cases where the current algorithm is less > than ideal? It'd be useful to report those for the next time someone > hacks on the resolver. >
I have a package that builds a library and a test executable. The test executable uses QuickCheck 2, but I don't want to force random Jane who cabal-installs my package to install QuickCheck 2. One, it's not packaged up, and two, it's not necessary for using the library. The cleanest way I found to deal with this is to use a flag for hiding the build-depends of the test executable for the flag-less build. if flag(test) build-depends: QuickCheck >= 2.0 else buildable: False Sean
_______________________________________________ Glasgow-haskell-users mailing list [email protected] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
