[Geany-Devel] Plugins Quality Check
Matthew Brush
mbrush at xxxxx
Sat Feb 22 00:48:36 UTC 2014
On 14-02-21 11:54 AM, Lex Trotman wrote:
> On 22 February 2014 04:50, Dimitar Zhekov <dimitar.zhekov at gmail.com> wrote:
>> On Fri, 21 Feb 2014 16:52:51 +0100
>> Colomban Wendling <lists.ban at herbesfolles.org> wrote:
>>
>>>>>> [...]
>>>>
>>>> OK, I didn't think it was OK to assume GCC was the compiler,
>>>
>>> It isn't, indeed. Although well, to be fair we probably have no idea
>>> what happens if it's not GCC-like. Or maybe I even remember there was
>>> problems with MSVC?
>>
I guess it would be the same result as passing something like
`-Wl,--export-dynamic` on platforms that don't support it (ie.
compilation/linking failure). Even a GCC-clone like Clang has some
different options, for example to limit errors is `-fmax-errors=N` on
GCC and `-ferror-limit=N` on Clang (at least last time I tried). So I
guess even if a compiler is GCC-like, passing an invalid `-Wfoo` might
be bad, if not fatal.
MSVC is a totally different story WRT to flags of course :)
>> We disabled MSVC some time ago (see "geany-plugins fail to build with
>> msvc"). In short, cl recognices "template" as C keyword :)
>
> I thought Matthew fixed that so we could use C++ plugins.
>
Only in the headers, if 'template' is still used in source files it
would choke a compiler that thought it was a C keyword.
>
> and the
>> CFLAGS / LDFLAGS obtained from pkg-config under win~1 are suitable
>> for gcc, not MSVC.
>
pkg-config on Windows supports an option called `--msvc-syntax` which
presumably outputs CL-compatible flags.
> But that is indeed a problem, presumably because things like gtk
> binaries have been cross compiled for win, not with msvc. Also is it
It shouldn't matter, C has a defined ABI AFAIK.
> still true that g++ and msvc++ binaries can't be linked?
>
I think just because of C++ not having a defined ABI and compilers
choosing to implement name-mangling and such differently. I don't think
it matters for Geany though since nothing external would be linked with
C++ symbols, even Scintilla's exposed stuff is plain/extern C AFAIK.
Cheers,
Matthew Brush
More information about the Devel
mailing list