Review Request 127265: Fix windows build of Ki18n
Kåre Särs
kare.sars at iki.fi
Thu Mar 3 20:33:17 UTC 2016
> On March 3, 2016, 4:51 p.m., Aleix Pol Gonzalez wrote:
> > src/kcatalog.cpp, line 150
> > <https://git.reviewboard.kde.org/r/127265/diff/1/?file=447929#file447929line150>
> >
> > Wouldn't it be the same to define it like this?
> > ```
> > #if defined(__USE_GNU_GETTEXT)
> > extern "C" int Q_DECL_IMPORT _nl_msg_cat_cntr;
> > #endif
> > ```
> >
> > This way we wouldn't have to make special cases for each platform.
> >
> > I just tried and works here (on Linux+Clang).
>
> Andre Heinecke wrote:
> Ah nice, did not know / remembered this macro. I think in that case we can also drop the extern int declaration inside the function as we already declare it now in a platform independent manner as an external variable.
>
> I've tested this again with mingw and GNU/Linux GCC and it still compiled.
>
> Andreas Cord-Landwehr wrote:
> Just tested, also works fine under Android.
+1
I think the bug in the last review change was that the extern declaration was inside the function. I'm not sure if the #ifdef was a real problem as you probably need the __declspec() also with MinGW.
This solution is however the best so far :)
- Kåre
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127265/#review93104
-----------------------------------------------------------
On March 3, 2016, 5:49 p.m., Andre Heinecke wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127265/
> -----------------------------------------------------------
>
> (Updated March 3, 2016, 5:49 p.m.)
>
>
> Review request for KDE Frameworks, Andreas Cord-Landwehr and Kåre Särs.
>
>
> Repository: ki18n
>
>
> Description
> -------
>
> In review Request 127048 (Restrict _nl_msg_cat_cntr use to GNU gettext implentations.) Unrelated Windows changes were requested and then introduced which in my opinion were wrong (and in the opinion of my compiler ;-) ).
>
> You can't just do an extern "C" dllimport declaration inside a function body:
>
> src/kcatalog.cpp:190:16: error: expected unqualified-id before string constant
> extern "C" int __declspec(dllimport) _nl_msg_cat_cntr;
>
>
> Also that patch changed the Logic from an MSVC specific define to general Q_OS_WIN. This appears to be wrong, too. While I'm only testing with MinGW I'm pretty sure that the ifndef _MSC_VER was there for a reason.
>
> This patch reverts the declaration move and logic change while keeping the __USE_GNU_GETTEXT guard.
>
>
> Diffs
> -----
>
> src/kcatalog.cpp 083443d
>
> Diff: https://git.reviewboard.kde.org/r/127265/diff/
>
>
> Testing
> -------
>
> Compiled with mingw and __USE_GNU_GETTEXT for Windows. Also compiled for GNU/Linux.
>
>
> Thanks,
>
> Andre Heinecke
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20160303/5cd81234/attachment.html>
More information about the Kde-frameworks-devel
mailing list