D5865: Add missing KDE_ENABLE_NAMED_OPERATORS function
Thiago Macieira
noreply at phabricator.kde.org
Tue May 30 05:47:54 UTC 2017
thiago added a comment.
In https://phabricator.kde.org/D5865#112747, @rjvbb wrote:
> In https://phabricator.kde.org/D5865#112743, @thiago wrote:
>
> > Fix the source code.
> >
> > If certain third-party libraries can't compile under MSVC 2015 (or even 2017!) with default compiler options, they don't deserve to be used. Blacklist them.
>
>
> That may work for Qt but is not an acceptable attitude for ECM, IMHO - and MSVC is problematic enough to build KF5 code for other reasons not to jump through hoops for it. You cannot expect FOSS projects to avoid Boost because it uses less common feature of the standard, big ole bad M$ cannot be bothered to write a proper compiler. I'd be all for blacklisting such compilers, if anything had to be blacklisted.
This is in a kde.org codereview of a macro with KDE in the name. I think it's acceptable. Don't waste time with code that doesn't try to be cross-platform. Just let it fail to compile.
And submit bug reports to those libraries. It's very easy for them to fix.
> The projects I'm aware of that use "incriminated" boost code do provide MSWin builds but using a properly standards-compliant compiler.
>
> My proposal is thus to drop MSVC support in the new macro, printing a warning should be enough.
That's a fine solution. If you're going to print a warning and you're serious about cross-platformness support, I suggest printing the warning for ALL compilers: "Warning: using C++ operator names is not compatible with MSVC prior to version 2017 (19.1). You should reconsider using this macro if your code is meant to be cross-platform".
REPOSITORY
R240 Extra CMake Modules
REVISION DETAIL
https://phabricator.kde.org/D5865
To: rjvbb, #frameworks, #build_system, cgilles, kfunk
Cc: thiago, kfunk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20170530/641d9793/attachment-0001.html>
More information about the Kde-buildsystem
mailing list