[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.
Regards,
Sven
More information about the fpc-pascal
mailing list