[fpc-pascal] Re: Automatically exporting C++ API using SWIG??

Sven Barth pascaldragon at googlemail.com
Thu Aug 1 12:24:08 CEST 2013

Am 01.08.2013 12:11, schrieb Michael Van Canneyt:
> On Thu, 1 Aug 2013, Sven Barth wrote:
>> Am 01.08.2013 11:38, schrieb Michael Van Canneyt:
>>> On Thu, 1 Aug 2013, Sven Barth wrote:
>>>> Am 01.08.2013 11:10, schrieb dev.dliw at gmail.com:
>>>>> And if it's allowed to dream: one time fpc will simply link 
>>>>> against C++
>>>>> directly :)
>>>> If you prefer to work in Pascal instead of C++ then you could work 
>>>> on that dream by improving the cppclass code in the compiler. 
>>>> Linking against static C++ class methods already works, what's 
>>>> (basically) missing is support for C++ runtimes (at first the 
>>>> stdc++ one would be sufficient), support for vtables and object 
>>>> instantiation/destruction.
>>> How do you handle different binary formats of C++ compilers ?
>>> Or is this meanwhile standardized ?
>> Support for every C++ compiler (mainly MSVC, C++ builder and GCC 
>> [LLVM counts here as GCC]) needs to be implemented explicitely, 
>> because they not only differ in class layout, but also in e.g. name 
>> mangling. So in the end (if we want to support more than GCC and 
>> LLVM) we'll need to use a directive to declare which compiler to 
>> target and this then includes a corresponding interface unit for the 
>> runtime (like is done with Objective C) and let the compiler generate 
>> the code correctly. Maybe together with packages support it should be 
>> possible to interface with multiple different compilers at once.
> Since a library is provided by a vendor, I'd say you normally 
> interface with one compiler per lib that you target, no ?
That's basically what I said :)
>> As a first step I'd only target GCC and LLVM as these are the main 
>> compilers for the majority of our platforms.
> Eh, MSVC also seems popular on windows ? ;)
We have three windows platforms with MSVC and I don't know how many 
platforms where GCC or LLVM is the main compiler. I'm not going for 
popularity here, just for the majority of platforms.


More information about the fpc-pascal mailing list