<pre style='margin:0'>
Chih-Hsuan Yen (yan12125) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a4ae221a49bbb2e34cec646d0a0bb2a50d120f9c">https://github.com/macports/macports-ports/commit/a4ae221a49bbb2e34cec646d0a0bb2a50d120f9c</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new a4ae221  kde-extra-cmake-modules: sync from RJVB/macstrop
</span>a4ae221 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit a4ae221a49bbb2e34cec646d0a0bb2a50d120f9c
</span>Author: Chih-Hsuan Yen <yan12125@macports.org>
AuthorDate: Tue Jul 2 00:13:44 2019 +0800

<span style='display:block; white-space:pre;color:#404040;'>    kde-extra-cmake-modules: sync from RJVB/macstrop
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Differences from https://github.com/RJVB/macstrop/tree/master/kde/ECM:
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * Add the GitHub handle to the maintainer
</span><span style='display:block; white-space:pre;color:#404040;'>    * Add size to checksum
</span><span style='display:block; white-space:pre;color:#404040;'>    * Not adding kECM subport as it wasn't there
</span><span style='display:block; white-space:pre;color:#404040;'>    * Not syncing patches in old/
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/50033
</span>---
 kde/kde-extra-cmake-modules/Portfile               |  62 ++--
 .../files/patch-BUNDLEDIR.diff                     |   6 +-
 .../files/patch-ecm-addappicon.diff                |  36 --
 .../files/patch-enable-named-operators.diff        |  51 +++
 .../files/patch-kdecompilerflags.diff              | 395 +++++++++++++++++++++
 .../files/patch-mac-installdirs.diff               | 122 +++++++
 .../files/patch-no-undefined.diff                  |  13 -
 .../files/patch-qt_no_exceptions.diff              |  45 +++
 8 files changed, 651 insertions(+), 79 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/Portfile b/kde/kde-extra-cmake-modules/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 27660a8..8c7ce32 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/kde/kde-extra-cmake-modules/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/kde/kde-extra-cmake-modules/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,14 +7,14 @@ set ECM             extra-cmake-modules
</span> name                kde-${ECM}
 subport ${name}-devel {}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set kf5.branch      5.29
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set kf5.branch      5.59
</span> 
 if {${subport} eq "${name}-devel"} {
     fetch.type      git
     git.url         git://anongit.kde.org/extra-cmake-modules
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#    v5.30.0-rc2-1-gf63f400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    git.branch      f63f400787ac42f64fafe006ef19579238067f40
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version         5.29.92
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    git.branch      3f51cb1fcd5f7b00b565b9f2ddf7366aeef3c415
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # v5.59.0-1-g3f51cb1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version         5.59.0.1
</span>     distname        ECM-5.1x.git
 } else {
     version         ${kf5.branch}.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,8 +24,9 @@ if {${subport} eq "${name}-devel"} {
</span>     distname        ${ECM}-${version}
     use_xz          yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums       rmd160  bdf712bed088fc497f14b625cd5dc48f4b8d7b3f \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  48f76e626e2235bd4b64aeea9bbbcb803eb8966a6d020d0ab8ddbe81930e98d8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums       rmd160  6a477336c39f9866da84095d6e746859b3829b42 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  1a630b242242ac32d20d14e7ae5645aa28a47676eae0e62ed76af8bc1f56c438 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    326980
</span> }
 
 supported_archs     noarch
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,25 +43,21 @@ platforms           darwin
</span> homepage            http://projects.kde.org/projects/kdesupport/${ECM}
 
 patchfiles-append   patch-BUNDLEDIR.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://commits.kde.org/extra-cmake-modules/f63f400787ac42f64fafe006ef19579238067f40
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "${name}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-ecm-addappicon.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "${name}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # https://commits.kde.org/extra-cmake-modules/187d8881a6a0c33f50eb65689aa1dd74a8d107a4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-no-undefined.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# # Not used here, but these are used when configuring KF5 packages (cf KF5 PortGroup):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#                     -DCMAKE_DISABLE_FIND_PACKAGE_X11=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#                     -DAPPLE_SUPPRESS_X11_WARNING=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#                     -DCMAKE_INSTALL_LIBEXECDIR=${prefix}/libexec \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#                     -DKDE_INSTALL_LIBEXECDIR=${prefix}/libexec/kde5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://phabricator.kde.org/D5865
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-enable-named-operators.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://phabricator.kde.org/D5972
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-qt_no_exceptions.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "${name}-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://phabricator.kde.org/D16894
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-kdecompilerflags.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://phabricator.kde.org/T10112
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append       patch-mac-installdirs.diff
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append   -DBUILD_HTML_DOCS:BOOL=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   -DBUILD_HTML_DOCS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DBUILD_MAN_DOCS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DBUILD_QTHELP_DOCS=OFF
</span> 
 variant qt4 conflicts qt5 description {Use Qt4 to build the Qt documentation} {}
 variant qt5 conflicts qt4 description {Use Qt5 to build the Qt documentation} {}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -89,15 +86,26 @@ if {[variant_isset docs]} {
</span>     } elseif {[variant_isset qt5]} {
         set qt5.prefer_kde  1
         PortGroup           qt5 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        qt5.depends_build_component \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            qttools
</span>     }
     patchfiles-append       patch-doc-building.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append    port:py-sphinx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DBUILD_QTHELP_DOCS:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:py-sphinx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace  -DBUILD_MAN_DOCS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_MAN_DOCS=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace  -DBUILD_QTHELP_DOCS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_QTHELP_DOCS=ON
</span>     pre-destroot {
         system -W ${build.dir}/docs "${qt_bins_dir}/qcollectiongenerator qthelp/ExtraCMakeModules.qhcp"
     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> livecheck.type      regex
<span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url       http://download.kde.org/stable/frameworks/${kf5.branch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex     ${ECM}-(5+(\\.\\d+)+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.version   ${kf5.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.url       http://download.kde.org/stable/frameworks/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex     (5+(\\.\\d+)+)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/files/patch-BUNDLEDIR.diff b/kde/kde-extra-cmake-modules/files/patch-BUNDLEDIR.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 91c9313..7af6005 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/kde/kde-extra-cmake-modules/files/patch-BUNDLEDIR.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/kde/kde-extra-cmake-modules/files/patch-BUNDLEDIR.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,5 +1,5 @@
</span> diff --git kde-modules/KDEInstallDirs.cmake kde-modules/KDEInstallDirs.cmake
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index b7cd34d..89b37b6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5c8783b..f5dfd6d 100644
</span> --- kde-modules/KDEInstallDirs.cmake
 +++ kde-modules/KDEInstallDirs.cmake
 @@ -18,7 +18,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,7 +11,7 @@ index b7cd34d..89b37b6 100644
</span>  # ``EXECROOTDIR``
  #     executables and libraries (``<empty>``) [``EXEC_INSTALL_PREFIX``]
  # ``BINDIR``
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -383,7 +383,7 @@ macro(_define_non_cache varname value)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -417,7 +417,7 @@ macro(_define_non_cache varname value)
</span>  endmacro()
  
  if(APPLE)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,4 +19,4 @@ index b7cd34d..89b37b6 100644
</span> +    _define_absolute(BUNDLEDIR "/Applications/MacPorts/KF5"
          "application bundles"
          BUNDLE_INSTALL_DIR)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/files/patch-ecm-addappicon.diff b/kde/kde-extra-cmake-modules/files/patch-ecm-addappicon.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 30fef65..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/kde/kde-extra-cmake-modules/files/patch-ecm-addappicon.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,36 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git modules/ECMAddAppIcon.cmake modules/ECMAddAppIcon.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ca64314..aec7e1c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- modules/ECMAddAppIcon.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ modules/ECMAddAppIcon.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -77,6 +77,31 @@ function(ecm_add_app_icon appsources)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         message(FATAL_ERROR "Unexpected arguments to ecm_add_app_icon: ${ARG_UNPARSED_ARGUMENTS}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        find_program(KSVG2ICNS NAMES ksvg2icns)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        foreach(icon ${ARG_ICONS})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            get_filename_component(icon_full ${icon} ABSOLUTE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            get_filename_component(icon_type ${icon_full} EXT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            # do we have ksvg2icns in the path and did we receive an svg (or compressed svg) icon?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if(KSVG2ICNS AND (${icon_type} STREQUAL ".svg" OR ${icon_type} STREQUAL ".svgz"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                # convert the svg icon to an icon resource
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                execute_process(COMMAND ${KSVG2ICNS} "${icon_full}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} RESULT_VARIABLE KSVG2ICNS_ERROR)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if(${KSVG2ICNS_ERROR})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    message(AUTHOR_WARNING "ksvg2icns could not generate an OS X application icon from ${icon}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    # install the icns file we just created
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    get_filename_component(icon_name ${icon_full} NAME_WE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    set(MACOSX_BUNDLE_ICON_FILE ${icon_name}.icns PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    set(${appsources} "${${appsources}};${CMAKE_CURRENT_BINARY_DIR}/${icon_name}.icns" PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${icon_name}.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    # we're done now
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    return()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        endforeach()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     set(known_sizes 16 32 48 64 128 256 512 1024)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     foreach(size ${known_sizes})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         set(icons_at_${size}px)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/files/patch-enable-named-operators.diff b/kde/kde-extra-cmake-modules/files/patch-enable-named-operators.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d97ae5e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/kde/kde-extra-cmake-modules/files/patch-enable-named-operators.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git kde-modules/KDECompilerSettings.cmake kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8f87ecc1970b3523890e0c91d7627dd7ec5fb542..ae2eaffc79273185a196ee00986a017245f3c09e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -219,6 +219,46 @@ if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-operator-names")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# allow projects that do require named operators to (re)activate them
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# (this includes projects using boost)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++function(KDE_ENABLE_NAMED_OPERATORS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(WMSG "Using C++ named operators is not compatible with MSVC prior to version 2017 (19.1).\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        You should reconsider using this macro if your code is meant to be cross-platform")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (MSVC_VERSION LESS 1910)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/ and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            message(WARNING ${WMSG})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive-")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        string(REPLACE "-fno-operator-names" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(WARNING ${WMSG})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endfunction()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++function(KDE_TARGET_ENABLE_NAMED_OPERATORS target mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(WMSG "Using C++ named operators is not compatible with MSVC prior to version 2017 (19.1).\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        You should reconsider using this macro if \"${target}\" is meant to be cross-platform")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (MSVC_VERSION LESS 1910)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/ and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            message(WARNING ${WMSG})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            target_compile_options(${target} ${mode} "/permissive-")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        target_compile_options(${target} ${mode}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            "$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-foperator-names>")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(WARNING ${WMSG})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endfunction()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Default to hidden visibility for symbols
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_C_VISIBILITY_PRESET hidden)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/files/patch-kdecompilerflags.diff b/kde/kde-extra-cmake-modules/files/patch-kdecompilerflags.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..895cd3d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/kde/kde-extra-cmake-modules/files/patch-kdecompilerflags.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,395 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git docs/module/ECMAddCompilerFlag.rst docs/module/ECMAddCompilerFlag.rst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000000000000000000000000000000000000..320a51a308c981a3514e31a8d07fb1e61c1121aa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ docs/module/ECMAddCompilerFlag.rst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.. ecm-module:: ../../modules/ECMAddCompilerFlag.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git kde-modules/KDECompilerSettings.cmake kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b60e4ea1c666b53ac4fe54a8f0327713e3159872..25b82ceca0ad51fe0a2d8e5742ed1c9d48421f7e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -186,6 +186,8 @@ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Language and toolchain features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ############################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(ECMAddCompilerFlag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Pick sensible versions of the C and C++ standards.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note that MSVC does not have equivalent flags; the features are either
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # supported or they are not.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -369,20 +371,14 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Make some warnings errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=return-type")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    # -Wvla: use of variable-length arrays (an extension to C++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wvla")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    include(CheckCXXCompilerFlag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    check_cxx_compiler_flag(-Wdate-time HAVE_DATE_TIME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (HAVE_DATE_TIME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # -Wdate-time: warn if we use __DATE__ or __TIME__ (we want to be able to reproduce the exact same binary)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdate-time")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_cxx_compiler_flags_if_supported(FLAGS -Wvla
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SUPPORTED_IF CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QUERY_IF APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_cxx_compiler_flags_if_supported(FLAGS -Wdate-time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SUPPORTED_IF (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QUERY_IF APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -492,12 +488,13 @@ if (MINGW AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--export-all-symbols")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (CMAKE_GENERATOR STREQUAL "Ninja" AND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9) OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (CMAKE_GENERATOR STREQUAL "Ninja")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Force colored warnings in Ninja's output, if the compiler has -fdiagnostics-color support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Rationale in https://github.com/ninja-build/ninja/issues/814
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ecm_add_cxx_compiler_flags_if_supported(FLAGS -fdiagnostics-color=always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SUPPORTED_IF ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9) OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        QUERY_IF APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include("${ECM_MODULE_DIR}/ECMEnableSanitizers.cmake")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git kde-modules/KDEFrameworkCompilerSettings.cmake kde-modules/KDEFrameworkCompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7b62c3e06dfcbc2a3c62bcc85ec75dafd80f67f7..4c591c6bf4b56449d181d79ce06ed3de8d60600f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- kde-modules/KDEFrameworkCompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ kde-modules/KDEFrameworkCompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,18 +61,9 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   add_definitions(-DQT_STRICT_ITERATORS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_cxx_compiler_flags_if_supported(FLAGS -pedantic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SUPPORTED_IF CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_cxx_compiler_flags_if_supported(FLAGS -Wzero-as-null-pointer-constant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SUPPORTED_IF CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QUERY_IF CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git modules/ECMAddCompilerFlag.cmake modules/ECMAddCompilerFlag.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000000000000000000000000000000000000..ef216c4c6ad60b346d95fc58912e816e94613002
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/ECMAddCompilerFlag.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,153 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#.rst:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ECMAddCompilerFlag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Add compiler one or more flag conditionally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  ECM_ADD_CXX_COMPILER_FLAGS_IF_SUPPORTED(FLAGS <flag|flags>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     [SUPPORTED_IF <support_condition>]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     [QUERY_IF <query_condition>])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# C-language equivalent::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  ECM_ADD_C_COMPILER_FLAGS_IF_SUPPORTED(FLAGS <flag|flags>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     [SUPPORTED_IF <support_condition>]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     [QUERY_IF <query_condition>])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# add ``<flag>`` or ``<flags>`` to CMAKE_CXX_FLAGS if the compiler supports them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Support is determined by the ``SUPPORTED_IF`` expression if provided or by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# querying the compiler directly if a ``QUERY_IF`` expression is true. The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ``QUERY_IF`` expression takes precedence if it evaluates to true.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The compiler is also queried if no conditions are given at all.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The compiler is queried for each flag in turn and only the supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# flag(s) are added. The ``SUPPORTED_IF`` condition applies to all flags.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# examples:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# add flags -a, -b and -c when using a GCC compiler or Clang:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# .. code-block:: cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   ecm_add_cxx_compiler_flags_if_supported(FLAGS -a -b -c SUPPORTED_IF CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# add flags -d, -e and/or -f if the compiler supports them:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# .. code-block:: cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   ecm_add_cxx_compiler_flags_if_supported(FLAGS -d -e -f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# add flag -a when using a GCC > 5 compiler, or query the compiler when running on a Mac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# (a more specific test would be APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang" but there is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# little chance another compiler will be used on that platform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# .. code-block:: cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   ecm_add_c_compiler_flags_if_supported(FLAGS -g
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     SUPPORTED_IF CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     QUERY_IF APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Since 5.xx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#=============================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright 2018,9      René J.V. Bertin <rjvbertin@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Redistribution and use in source and binary forms, with or without
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# modification, are permitted provided that the following conditions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# are met:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# 1. Redistributions of source code must retain the copyright
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    notice, this list of conditions and the following disclaimer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# 2. Redistributions in binary form must reproduce the copyright
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    notice, this list of conditions and the following disclaimer in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    documentation and/or other materials provided with the distribution.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# 3. The name of the author may not be used to endorse or promote products
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    derived from this software without specific prior written permission.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(CMakeParseArguments)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(CheckCXXCompilerFlag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(CheckCCompilerFlag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++function(ECM_ADD_CXX_COMPILER_FLAGS_IF_SUPPORTED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_OPTIONS_ARGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_ONE_VALUE_ARGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_MULTI_VALUE_ARGS FLAGS SUPPORTED_IF QUERY_IF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cmake_parse_arguments(EASCXXFLAGS "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT EASCXXFLAGS_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "ecm_add_cxx_compiler_flags_if_supported: 'FLAGS' is a required argument.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # if the user provided conditions, evaluate them now to simplify things later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(EASCXXFLAGS_SUPPORTED_IF AND (${EASCXXFLAGS_SUPPORTED_IF}))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(EASCXXFLAGS_is_supported ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if((EASCXXFLAGS_QUERY_IF AND (${EASCXXFLAGS_QUERY_IF}))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        OR (NOT EASCXXFLAGS_SUPPORTED_IF AND NOT EASCXXFLAGS_QUERY_IF))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(EASCXXFLAGS_needs_query ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(EASCXXFLAGS_needs_query)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # without conditions, or when QUERY_IF is true we'll need to ask the compiler directly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # one flag at a time:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        foreach(flag IN ITEMS ${EASCXXFLAGS_FLAGS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # use a standardised and informative cached test variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            set(HASFLAG "${CMAKE_CXX_COMPILER_ID}++_ACCEPTS${flag}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            check_cxx_compiler_flag(${flag} ${HASFLAG})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if(${${HASFLAG}})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                set(flags "${flags} ${flag}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endforeach()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flags}" PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    elseif(EASCXXFLAGS_is_supported)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # all flags can be appended at once
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        string(REPLACE ";" " " FLAGS "${EASCXXFLAGS_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}" PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endfunction()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++function(ECM_ADD_C_COMPILER_FLAGS_IF_SUPPORTED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_OPTIONS_ARGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_ONE_VALUE_ARGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_MULTI_VALUE_ARGS FLAGS SUPPORTED_IF QUERY_IF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cmake_parse_arguments(EASCFLAGS "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT EASCFLAGS_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "ecm_add_c_compiler_flags_if_supported: 'FLAGS' is a required argument.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # if the user provided conditions, evaluate them now to simplify things later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(EASCFLAGS_SUPPORTED_IF AND (${EASCFLAGS_SUPPORTED_IF}))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(EASCFLAGS_is_supported ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if((EASCFLAGS_QUERY_IF AND (${EASCFLAGS_QUERY_IF}))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        OR (NOT EASCFLAGS_SUPPORTED_IF AND NOT EASCFLAGS_QUERY_IF))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(EASCFLAGS_needs_query ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(EASCFLAGS_needs_query)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        foreach(flag IN ITEMS ${EASCFLAGS_FLAGS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            set(HASFLAG "${CMAKE_C_COMPILER_ID}_ACCEPTS${flag}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            check_c_compiler_flag(${flag} ${HASFLAG})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if(${${HASFLAG}})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                set(flags "${flags} ${flag}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endforeach()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flags}" PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    elseif(EASCFLAGS_is_supported)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        string(REPLACE ";" " " FLAGS "${EASCFLAGS_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}" PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endfunction()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git tests/CMakeLists.txt tests/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9df03eb9f578b05a4cbb10323ab984bacb81d878..1bebe9a1fe50bbbdbdb623914346cc16926baa43 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tests/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tests/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -221,3 +221,5 @@ set_package_properties(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TARGET Qt5::Quick)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_test_macro(ECMQMLModules dummy)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++add_test_macro(ECMAddCompilerFlag dummy)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git tests/ECMAddCompilerFlag/CMakeLists.txt tests/ECMAddCompilerFlag/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000000000000000000000000000000000000..a8d1c6ccbaaa24792ee6814939891f58cd4fcb4c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tests/ECMAddCompilerFlag/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,115 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++project(ECMAddCompilerFlagTest)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cmake_minimum_required(VERSION 2.8.12)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(CMAKE_MODULE_PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ${CMAKE_CURRENT_SOURCE_DIR}/../../modules
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ${CMAKE_CURRENT_SOURCE_DIR}/../../find-modules
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++include(ECMAddCompilerFlag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### test a standard C++ option supported by GCC and Clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(TESTFLAG "-fexceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### clang-only flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(TESTFLAG2 "-fblocks")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(TESTFLAG3 "-fcxx-exceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# a bogus flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(TESTFLAG4 "-bogus-drapeau")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(CMAKE_CXX_FLAGS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_cxx_compiler_flags_if_supported(FLAGS ${TESTFLAG}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SUPPORTED_IF CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_cxx_compiler_flags_if_supported(FLAGS ${TESTFLAG2} ${TESTFLAG3}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QUERY_IF CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# no conditional expression means always query the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_cxx_compiler_flags_if_supported(FLAGS ${TESTFLAG4})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT CMAKE_CXX_FLAGS MATCHES "${TESTFLAG}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG} should be set for ${CMAKE_CXX_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_CXX_FLAGS MATCHES "${TESTFLAG}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG} should not be set for ${CMAKE_CXX_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT CMAKE_CXX_FLAGS MATCHES "${TESTFLAG2}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG2} should be set for ${CMAKE_CXX_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT CMAKE_CXX_FLAGS MATCHES "${TESTFLAG3}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG3} should be set for ${CMAKE_CXX_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_CXX_FLAGS MATCHES "${TESTFLAG2}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG2} should not be set for ${CMAKE_CXX_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_CXX_FLAGS MATCHES "${TESTFLAG3}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG3} should not be set for ${CMAKE_CXX_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_CXX_FLAGS MATCHES "${TESTFLAG4}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(FATAL_ERROR "${TESTFLAG4} should not be set for ${CMAKE_CXX_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### test if -pedantic is added correctly for GCC or Clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(TESTFLAG "-pedantic")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### clang-only flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(TESTFLAG2 "-fblocks")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(TESTFLAG3 "-Xclang -Wall")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(CMAKE_C_FLAGS "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_c_compiler_flags_if_supported(FLAGS ${TESTFLAG}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SUPPORTED_IF CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_c_compiler_flags_if_supported(FLAGS ${TESTFLAG2} ${TESTFLAG3}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QUERY_IF CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# no conditional expression means always query the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ecm_add_c_compiler_flags_if_supported(FLAGS ${TESTFLAG4})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++message(STATUS "CMAKE_C_FLAGS=${CMAKE_C_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT CMAKE_C_FLAGS MATCHES "${TESTFLAG}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG} should be set for ${CMAKE_C_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_C_FLAGS MATCHES "${TESTFLAG}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG} should not be set for ${CMAKE_C_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT CMAKE_C_FLAGS MATCHES "${TESTFLAG2}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG2} should be set for ${CMAKE_C_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(NOT CMAKE_C_FLAGS MATCHES "${TESTFLAG3}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG3} should be set for ${CMAKE_C_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_C_FLAGS MATCHES "${TESTFLAG2}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG2} should not be set for ${CMAKE_C_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_C_FLAGS MATCHES "${TESTFLAG3}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(FATAL_ERROR "${TESTFLAG3} should not be set for ${CMAKE_C_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_C_FLAGS MATCHES "${TESTFLAG4}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(FATAL_ERROR "${TESTFLAG4} should not be set for ${CMAKE_C_COMPILER_ID}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++add_executable(dummy main.c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git tests/ECMAddCompilerFlag/main.c tests/ECMAddCompilerFlag/main.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000000000000000000000000000000000000..c13815cea825c1f1ea72190a7fe901cd1fa55d0d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tests/ECMAddCompilerFlag/main.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int main()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/files/patch-mac-installdirs.diff b/kde/kde-extra-cmake-modules/files/patch-mac-installdirs.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..f432976
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/kde/kde-extra-cmake-modules/files/patch-mac-installdirs.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,122 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git kde-modules/KDEInstallDirs.cmake kde-modules/KDEInstallDirs.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 52b2eb212f3941ea48ba864433e11919e83b2367..b79b66d37296cbf8a49440e759a92f99b075db95 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- kde-modules/KDEInstallDirs.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ kde-modules/KDEInstallDirs.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -259,6 +259,10 @@ if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elseif (APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # for now we don't change the current behaviour by default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  option(APPLE_FORCE_UNIX_DIRS "Force enable installation to standard Unix locations on Mac" ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  option(APPLE_SUPPRESS_INSTALLDIRS_WARNING "Suppress warnings about the chosen install locations on Mac" OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(_gnu_install_dirs_vars
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -466,6 +470,9 @@ if(NOT DEFINED KDE_INSTALL_USE_QT_SYS_PATHS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(qt_install_prefix_dir STREQUAL "${CMAKE_INSTALL_PREFIX}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         message(STATUS "Installing in the same prefix as Qt, adopting their path scheme.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         set(_default_KDE_INSTALL_USE_QT_SYS_PATHS ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    elseif(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        message(STATUS "Using native Mac installation locations, adopting Qt's path scheme.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(_default_KDE_INSTALL_USE_QT_SYS_PATHS ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -532,20 +539,41 @@ if (WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _define_relative(DATAROOTDIR BINDIR "data"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         "read-only architecture-independent data root"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         SHARE_INSTALL_PREFIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(KDE_INSTALL_CROSSPLATFORM_DATAROOTDIR ${KDE_INSTALL_DATAROOTDIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elseif(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _define_absolute(DATAROOTDIR "/Library/Application Support"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        "read-only architecture-independent data root")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _define_absolute(CROSSPLATFORM_DATAROOTDIR "share"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        "read-only architecture-independent data root"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        SHARE_INSTALL_PREFIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _define_absolute(DATAROOTDIR "share"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         "read-only architecture-independent data root"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         SHARE_INSTALL_PREFIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(KDE_INSTALL_CROSSPLATFORM_DATAROOTDIR ${KDE_INSTALL_DATAROOTDIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _define_relative(DATADIR DATAROOTDIR ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "read-only architecture-independent data"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DATA_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_non_cache(DATADIR_KF5 "${CMAKE_INSTALL_DATADIR}/kf5")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _define_non_cache(DATADIR_KF5 "/Library/Application Support/kf5")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _define_non_cache(DATADIR_KF5 "${CMAKE_INSTALL_DATADIR}/kf5")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(NOT KDE_INSTALL_DIRS_NO_DEPRECATED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(KF5_DATA_INSTALL_DIR "${CMAKE_INSTALL_DATADIR_KF5}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (APPLE AND NOT APPLE_SUPPRESS_INSTALLDIRS_WARNING)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(APPLE_FORCE_UNIX_DIRS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # for now we print a regular status message for the traditional default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS "Using standard Unix installation directories under ${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_DATAROOTDIR}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(WARNING "Using Mac-specific installation directories under ${KDE_INSTALL_DATAROOTDIR}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Qt-specific data vars
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(KDE_INSTALL_USE_QT_SYS_PATHS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     query_qmake(qt_docs_dir QT_INSTALL_DOCS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -584,40 +612,40 @@ _define_relative(KTEMPLATESDIR DATAROOTDIR "kdevappwizard/templates"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "Kapptemplate and Kdevelop templates")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Cross-desktop or other system things
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(ICONDIR DATAROOTDIR "icons"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(ICONDIR CROSSPLATFORM_DATAROOTDIR "icons"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "icons"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ICON_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(LOCALEDIR DATAROOTDIR "locale"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(LOCALEDIR CROSSPLATFORM_DATAROOTDIR "locale"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "knotify description files"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LOCALE_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(SOUNDDIR DATAROOTDIR "sounds"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(SOUNDDIR CROSSPLATFORM_DATAROOTDIR "sounds"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "sound files"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SOUND_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(TEMPLATEDIR DATAROOTDIR "templates"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(TEMPLATEDIR CROSSPLATFORM_DATAROOTDIR "templates"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "templates"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TEMPLATES_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(WALLPAPERDIR DATAROOTDIR "wallpapers"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(WALLPAPERDIR CROSSPLATFORM_DATAROOTDIR "wallpapers"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "desktop wallpaper images"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     WALLPAPER_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(APPDIR DATAROOTDIR "applications"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(APPDIR CROSSPLATFORM_DATAROOTDIR "applications"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "application desktop files"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     XDG_APPS_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(DESKTOPDIR DATAROOTDIR "desktop-directories"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(DESKTOPDIR CROSSPLATFORM_DATAROOTDIR "desktop-directories"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "desktop directories"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     XDG_DIRECTORY_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(MIMEDIR DATAROOTDIR "mime/packages"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(MIMEDIR CROSSPLATFORM_DATAROOTDIR "mime/packages"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "mime description files"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     XDG_MIME_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(METAINFODIR DATAROOTDIR "metainfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(METAINFODIR CROSSPLATFORM_DATAROOTDIR "metainfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "AppStream component metadata")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(QCHDIR DATAROOTDIR "doc/qch"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(QCHDIR CROSSPLATFORM_DATAROOTDIR "doc/qch"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "documentation bundles in QCH format")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(MANDIR DATAROOTDIR "man"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(MANDIR UNIXCROSSPLATFORM_DATAROOTDIR "man"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "man documentation"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MAN_INSTALL_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(INFODIR DATAROOTDIR "info"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(INFODIR CROSSPLATFORM_DATAROOTDIR "info"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "info documentation")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_define_relative(DBUSDIR DATAROOTDIR "dbus-1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_define_relative(DBUSDIR CROSSPLATFORM_DATAROOTDIR "dbus-1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "D-Bus")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _define_relative(DBUSINTERFACEDIR DBUSDIR "interfaces"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "D-Bus interfaces"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/files/patch-no-undefined.diff b/kde/kde-extra-cmake-modules/files/patch-no-undefined.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 478f6cf..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/kde/kde-extra-cmake-modules/files/patch-no-undefined.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git kde-modules/KDECompilerSettings.cmake kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f81b661..8b458f5 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -332,7 +332,7 @@ endfunction()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Better diagnostics (warnings, errors)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ############################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT APPLE) OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT APPLE) OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND NOT WIN32))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # Linker warnings should be treated as errors
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/kde/kde-extra-cmake-modules/files/patch-qt_no_exceptions.diff b/kde/kde-extra-cmake-modules/files/patch-qt_no_exceptions.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..a569a15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/kde/kde-extra-cmake-modules/files/patch-qt_no_exceptions.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Index: kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+===================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ kde-modules/KDECompilerSettings.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -304,9 +304,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -DQT_NO_EXCEPTIONS")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND NOT WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -DQT_NO_EXCEPTIONS")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elseif (MSVC OR (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Intel"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Exceptions appear to be disabled by default for MSVC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # http://msdn.microsoft.com/en-us/library/1deeycx5.aspx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -324,9 +324,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             set(${VAR} "${${VAR}} -fexceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(${VAR} "${${VAR}} -fexceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        string(REPLACE " -DQT_NO_EXCEPTIONS " " " ${VAR} " ${${VAR}} ")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # it's likely that -DQT_NO_EXCEPTIONS from CMAKE_CXX_FLAGS never made it to the COMPILE_OPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # so we override/undo that global setting for this file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(${VAR} "${${VAR}} -fexceptions -UQT_NO_EXCEPTIONS")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set(${VAR} "${${VAR}} -fexceptions")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        string(REPLACE " -DQT_NO_EXCEPTIONS " " " ${VAR} " ${${VAR}} ")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(${VAR} "${${VAR}} -fexceptions -UQT_NO_EXCEPTIONS")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     string(STRIP "${${VAR}}" ${VAR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endmacro()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -351,10 +355,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         target_compile_options(${target} ${mode} "$<$<CXX_COMPILER_ID:Intel>:-EHsc>")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        target_compile_options(${target} ${mode} "$<$<CXX_COMPILER_ID:Intel>:-fexceptions>")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        target_compile_options(${target} ${mode} "$<$<CXX_COMPILER_ID:Intel>:-fexceptions;-UQT_NO_EXCEPTIONS>")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     target_compile_options(${target} ${mode}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-fexceptions>")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        "$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-fexceptions;-UQT_NO_EXCEPTIONS>")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endfunction()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function(KDE_ENABLE_EXCEPTIONS)
</span></pre><pre style='margin:0'>

</pre>