Cabal vs. C++
Roman Leshchinskiy
rl at cse.unsw.edu.au
Tue Feb 26 19:50:54 EST 2008
Duncan Coutts wrote:
> On Tue, 2008-02-26 at 19:38 +1100, Roman Leshchinskiy wrote:
>> What is the simplest way to build a Haskell project that uses a C++
>> library? It needs at least the following from Cabal.
>>
>> - It must know how to compile C++ files. This kind of works by
>> accident if I list those under c-sources since gcc knows what to do
>> with them but this is (a) ugly and (b) doesn't allow me to pass
>> C++-specific options to gcc.
>
> That's doable. To do it properly we'd have to add c++-sources and c
> ++-options fields. There's the question of how many languages we want to
> add support for in this style.
I'd vote for none (not even C). Something extensible would be vastly
preferable.
>> - The project must be linked with g++. However, I don't understand how
>> to tell Cabal which linker to use.
>
> That's a real pain. This kind of thing is never going to scale. When we
> want to link in objective C code do we have to link using that compiler?
> What if we're making a Haskell library rather than a program that needs
> a C++ lib, do we have to remember that every program that uses that
> Haskell package has to be linked using g++ rather than gcc? Then it's
> really easy to get into the situation that different linkers are needed
> if some program directly or indirectly depends on two packages that want
> different linkers. It's a big ugly mess.
I agree wholeheartedly, but it's a mess we have to live with.
> A hack that should work for an executable is:
> ghc-options: -pgml g++
Ok, thanks.
Roman
More information about the Libraries
mailing list