> 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

Reply via email to