diff options
| author | David Faure <faure@kde.org> | 2013-11-24 23:38:43 +0100 | 
|---|---|---|
| committer | David Faure <faure@kde.org> | 2013-11-24 23:38:43 +0100 | 
| commit | bb8eaaa588da6d5b063788e3a1a18c449d2a25d4 (patch) | |
| tree | ee1be65727b48791bd19596836f8a00dae8b80ea | |
| parent | 573907a1dbbf63ca745412c06bdb4092f614dc77 (diff) | |
| download | extra-cmake-modules-bb8eaaa588da6d5b063788e3a1a18c449d2a25d4.tar.gz extra-cmake-modules-bb8eaaa588da6d5b063788e3a1a18c449d2a25d4.tar.bz2 | |
Manually merge daa54a252 from kdelibs into this file.
Please check...
CCMAIL: rakuco@FreeBSD.org
| -rw-r--r-- | kde-modules/KDECompilerSettings.cmake | 22 | 
1 files changed, 11 insertions, 11 deletions
| diff --git a/kde-modules/KDECompilerSettings.cmake b/kde-modules/KDECompilerSettings.cmake index b034751a..5f2da5e5 100644 --- a/kde-modules/KDECompilerSettings.cmake +++ b/kde-modules/KDECompilerSettings.cmake @@ -293,6 +293,16 @@ endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")  if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")  # TODO: why do the other KDE4_ENABLE_EXCEPTIONS not have -UQT_NO_EXCEPTIONS ? +   # Note that exceptions are enabled by default when building with clang. That +   # is, -fno-exceptions is not set in CMAKE_CXX_FLAGS below. This is because a +   # lot of code in different KDE modules ends up including code that throws +   # exceptions. Most (or all) of the occurrences are in template code that +   # never gets instantiated. Contrary to GCC, ICC and MSVC, clang (most likely +   # rightfully) complains about that. Trying to work around the issue by +   # passing -fdelayed-template-parsing brings other problems, as noted in +   # http://lists.kde.org/?l=kde-core-devel&m=138157459706783&w=2. +   # The generated code will be slightly bigger, but there is no way to avoid +   # it.     set (KDE4_ENABLE_EXCEPTIONS "-fexceptions -UQT_NO_EXCEPTIONS")     # Select flags.     set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG -DQT_NO_DEBUG") @@ -314,17 +324,7 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")     set (CMAKE_MODULE_LINKER_FLAGS_PROFILE "${CMAKE_MODULE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")     set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -Wno-long-long -std=iso9899:1990 -Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") -   # As of Qt 4.6.x we need to override the new exception macros if we want compile with -fno-exceptions -   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -Woverloaded-virtual -fno-exceptions -DQT_NO_EXCEPTIONS -fno-common -Werror=return-type") - -   # There is a lot of code out there that includes headers that throw -   # exceptions, but we disable exceptions by default. -   # GCC, MSVC and ICC do not complain about these cases when the exceptions -   # are thrown inside some template code that is not expanded/used, which is -   # what happens most of the time. -   # We have to follow suit and be less strict in order not to break the build -   # in many places. -   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdelayed-template-parsing") +   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -Woverloaded-virtual -fno-common -Werror=return-type")     if (CMAKE_SYSTEM_NAME STREQUAL GNU)        set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pthread") | 
