> On Jan. 7, 2014, 4:55 p.m., Stephen Kelly wrote: > > Why is -UQT_NO_EXCEPTIONS needed? > > Alex Merry wrote: > Hrm. After some investigation: I'm not entirely sure. The simplest > answer is "that's what qmake does" - defines QT_NO_EXCEPTIONS exactly when > exceptions are disabled (note that exceptions are disabled by default for Qt > itself, but enabled by default for all other code, including tests in Qt and > applications using qmake as their build system). > > You would have thought that enabling this only for the headers in Qt (but > not for the library itself) would be dangerous - for example, QException is > declared, but its methods will not be defined if Qt was not compiled with > exception support. > > As far as I can see, the only useful behaviour you get from making > QT_NO_EXCEPTIONS match the compiler flags, rather than Qt's compilation > flags, is that you can get QVERIFY_EXCEPTION_THROWN from QTest even when Qt > was compiled without exceptions. But in other regards, I think there is the > potential for some weird behaviour if QT_NO_EXCEPTIONS does not match how Qt > was compiled.
All I get out of git log, incidentally, is a commit message from Helio saying "Need to undefine macro if we force exceptions. Thanks to Andreas Pakulat" - Alex ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/114897/#review46984 ----------------------------------------------------------- On Jan. 7, 2014, 4:52 p.m., Alex Merry wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/114897/ > ----------------------------------------------------------- > > (Updated Jan. 7, 2014, 4:52 p.m.) > > > Review request for Build System, KDE Frameworks and Stephen Kelly. > > > Repository: extra-cmake-modules > > > Description > ------- > > Make KDE_ENABLE_EXCEPTIONS a list > > When KDE_ENABLE_EXCEPTIONS contains two arguments, they are currently a > single string containing those space-separated arguments. It can thus > be used as > set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE_ENABLE_EXCEPTIONS}") > However, the proper way to set compile flags these days is to use > add_compile_options, as in > add_compile_options(${KDE_ENABLE_EXCEPTIONS}) > which requires KDE_ENABLE_EXCEPTIONS to be a list. > > Note that this change means that setting CMAKE_CXX_FLAGS like above NO > LONGER WORKS (as you will get the argument > -fexceptions;-UQT_NO_EXCEPTIONS added for GCC and Clang). > > > Diffs > ----- > > kde-modules/KDECompilerSettings.cmake > 72824e166d03dcc2d089814dc121f08ba998974a > > Diff: https://git.reviewboard.kde.org/r/114897/diff/ > > > Testing > ------- > > ThreadWeaver compiles under GCC on Linux if (and only if) I change the > src/CMakeLists.txt file to use add_compile_options instead of setting > CMAKE_CXX_FLAGS. > > > Thanks, > > Alex Merry > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel