You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
kde-extra-cmake-modules: Fix patch offsets and app path
Fix path to Applications folder so it does not start with two slashes. This fixes destroot failure of phonon-qt5: CMake Error at settings/cmake_install.cmake:49 (file): file called with network path DESTINATION. This does not make sense when using DESTDIR. Specify local absolute path or remove DESTDIR environment variable. DESTINATION= //Applications/MacPorts/KF5 Call Stack (most recent call first): cmake_install.cmake:294 (include) Also, use separate patchfiles for the two subports so that the patches apply without offset for both subports. Previously, when a patch applied with offset, a .orig file would be created, and this would be installed. This also prevents potential future patch failure if one of the subports is updated but not the other one, as has happened before.
This commit is contained in:
@@ -11,7 +11,7 @@ conflicts-delete ${subport}
|
||||
|
||||
set kf5.branch 5.86
|
||||
|
||||
patch.pre_args-append -N
|
||||
set patchext [string range ${subport} [string length ${name}] end].diff
|
||||
patch.pre_args-replace -p0 -p1
|
||||
|
||||
if {${subport} eq "${name}-devel"} {
|
||||
@@ -26,12 +26,11 @@ if {${subport} eq "${name}-devel"} {
|
||||
|
||||
# v5.75.0-7-ga670c57
|
||||
version 5.75.0.7
|
||||
revision 1
|
||||
distname ECM-5.1x.git
|
||||
|
||||
patchfiles-append \
|
||||
patch-BUNDLEDIR-devel.diff
|
||||
} else {
|
||||
version ${kf5.branch}.0
|
||||
revision 1
|
||||
set branch [join [lrange [split ${version} .] 0 1] .]
|
||||
master_sites kde:stable/frameworks/${branch}/
|
||||
|
||||
@@ -42,8 +41,6 @@ if {${subport} eq "${name}-devel"} {
|
||||
sha256 aacc5ccdc5799efe34e2dae33418c379466caf7c9802b78348ccfb5782fe6ab5 \
|
||||
size 318384
|
||||
|
||||
patchfiles-append \
|
||||
patch-BUNDLEDIR.diff
|
||||
}
|
||||
|
||||
supported_archs noarch
|
||||
@@ -61,16 +58,17 @@ long_description Extra CMake Modules, or ECM, aims to augment CMake with addi
|
||||
|
||||
homepage https://invent.kde.org/frameworks/${ECM}
|
||||
|
||||
patchfiles-append patch-BUNDLEDIR${patchext}
|
||||
# https://phabricator.kde.org/D5865
|
||||
patchfiles-append patch-enable-named-operators.diff
|
||||
patchfiles-append patch-enable-named-operators${patchext}
|
||||
# https://phabricator.kde.org/D5972
|
||||
patchfiles-append patch-qt_no_exceptions.diff
|
||||
patchfiles-append patch-qt_no_exceptions${patchext}
|
||||
if {${subport} eq "${name}-devel"} {
|
||||
# https://phabricator.kde.org/D16894
|
||||
patchfiles-append patch-kdecompilerflags.diff
|
||||
patchfiles-append patch-kdecompilerflags${patchext}
|
||||
}
|
||||
# https://phabricator.kde.org/T10112
|
||||
patchfiles-append patch-mac-installdirs.diff
|
||||
patchfiles-append patch-mac-installdirs${patchext}
|
||||
|
||||
post-patch {
|
||||
reinplace "s|@APPLICATIONSDIR@|${applications_dir}|g" ${worksrcpath}/kde-modules/KDEInstallDirs.cmake
|
||||
@@ -110,7 +108,7 @@ if {[variant_isset docs]} {
|
||||
qt5.depends_build_component \
|
||||
qttools
|
||||
}
|
||||
patchfiles-append patch-doc-building.diff
|
||||
patchfiles-append patch-doc-building${patchext}
|
||||
platform darwin {
|
||||
depends_build-append \
|
||||
port:py-sphinx
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
# ``BUNDLEDIR``
|
||||
-# application bundles (``/Applications/KDE``) [``BUNDLE_INSTALL_DIR``]
|
||||
+# application bundles (``/@APPLICATIONSDIR@/KDE``) [``BUNDLE_INSTALL_DIR``]
|
||||
+# application bundles (``@APPLICATIONSDIR@/KDE``) [``BUNDLE_INSTALL_DIR``]
|
||||
# ``EXECROOTDIR``
|
||||
# executables and libraries (``<empty>``) [``EXEC_INSTALL_PREFIX``]
|
||||
# ``BINDIR``
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
if(APPLE)
|
||||
- _define_absolute(BUNDLEDIR "/Applications/KDE"
|
||||
+ _define_absolute(BUNDLEDIR "/@APPLICATIONSDIR@/KF5"
|
||||
+ _define_absolute(BUNDLEDIR "@APPLICATIONSDIR@/KF5"
|
||||
"application bundles"
|
||||
BUNDLE_INSTALL_DIR)
|
||||
endif()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
``BUNDLEDIR``
|
||||
- application bundles (``/Applications/KDE``) [``BUNDLE_INSTALL_DIR``]
|
||||
+ application bundles (``/@APPLICATIONSDIR@/KF5``) [``BUNDLE_INSTALL_DIR``]
|
||||
+ application bundles (``@APPLICATIONSDIR@/KF5``) [``BUNDLE_INSTALL_DIR``]
|
||||
``EXECROOTDIR``
|
||||
executables and libraries (``<empty>``) [``EXEC_INSTALL_PREFIX``]
|
||||
``BINDIR``
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
if(APPLE)
|
||||
- _define_absolute(BUNDLEDIR "/Applications/KDE"
|
||||
+ _define_absolute(BUNDLEDIR "/@APPLICATIONSDIR@/KF5"
|
||||
+ _define_absolute(BUNDLEDIR "@APPLICATIONSDIR@/KF5"
|
||||
"application bundles"
|
||||
BUNDLE_INSTALL_DIR)
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
diff --git a/cmake/FindSphinx.cmake b/cmake/FindSphinx.cmake
|
||||
index dc83ec6..7d39969 100644
|
||||
--- a/cmake/FindSphinx.cmake
|
||||
+++ b/cmake/FindSphinx.cmake
|
||||
@@ -35,6 +35,9 @@ find_program(Sphinx_BUILD_EXECUTABLE
|
||||
sphinx-build
|
||||
sphinx-build2
|
||||
sphinx-build3
|
||||
+ sphinx-build-2.7
|
||||
+ sphinx-build-3.4
|
||||
+ sphinx-build-3.5
|
||||
DOC "Sphinx Documentation Builder (https://www.sphinx-doc.org/)"
|
||||
)
|
||||
|
||||
@@ -2,7 +2,7 @@ diff --git a/cmake/FindSphinx.cmake b/cmake/FindSphinx.cmake
|
||||
index dc83ec6..7d39969 100644
|
||||
--- a/cmake/FindSphinx.cmake
|
||||
+++ b/cmake/FindSphinx.cmake
|
||||
@@ -35,6 +35,9 @@ find_program(Sphinx_BUILD_EXECUTABLE
|
||||
@@ -34,6 +34,9 @@ find_program(Sphinx_BUILD_EXECUTABLE
|
||||
sphinx-build
|
||||
sphinx-build2
|
||||
sphinx-build3
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
diff --git a/kde-modules/KDECompilerSettings.cmake b/kde-modules/KDECompilerSettings.cmake
|
||||
index 63a5ce1..c42fd55 100644
|
||||
--- a/kde-modules/KDECompilerSettings.cmake
|
||||
+++ b/kde-modules/KDECompilerSettings.cmake
|
||||
@@ -210,6 +210,46 @@ if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-operator-names")
|
||||
endif()
|
||||
|
||||
+# allow projects that do require named operators to (re)activate them
|
||||
+# (this includes projects using boost)
|
||||
+function(KDE_ENABLE_NAMED_OPERATORS)
|
||||
+ set(WMSG "Using C++ named operators is not compatible with MSVC prior to version 2017 (19.1).\
|
||||
+ You should reconsider using this macro if your code is meant to be cross-platform")
|
||||
+ if (MSVC)
|
||||
+ if (MSVC_VERSION LESS 1910)
|
||||
+ # https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/ and
|
||||
+ # https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
|
||||
+ # https://learn.microsoft.com/cpp/build/reference/permissive-standards-conformance
|
||||
+ message(WARNING ${WMSG})
|
||||
+ else()
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive-")
|
||||
+ endif()
|
||||
+ else()
|
||||
+ string(REPLACE "-fno-operator-names" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
+ message(WARNING ${WMSG})
|
||||
+ endif()
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" PARENT_SCOPE)
|
||||
+endfunction()
|
||||
+
|
||||
+function(KDE_TARGET_ENABLE_NAMED_OPERATORS target mode)
|
||||
+ set(WMSG "Using C++ named operators is not compatible with MSVC prior to version 2017 (19.1).\
|
||||
+ You should reconsider using this macro if \"${target}\" is meant to be cross-platform")
|
||||
+ if (MSVC)
|
||||
+ if (MSVC_VERSION LESS 1910)
|
||||
+ # https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/ and
|
||||
+ # https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
|
||||
+ # https://learn.microsoft.com/cpp/build/reference/permissive-standards-conformance
|
||||
+ message(WARNING ${WMSG})
|
||||
+ else()
|
||||
+ target_compile_options(${target} ${mode} "/permissive-")
|
||||
+ endif()
|
||||
+ else()
|
||||
+ target_compile_options(${target} ${mode}
|
||||
+ "$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-foperator-names>")
|
||||
+ message(WARNING ${WMSG})
|
||||
+ endif()
|
||||
+endfunction()
|
||||
+
|
||||
# Default to hidden visibility for symbols
|
||||
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||
@@ -2,7 +2,7 @@ diff --git a/kde-modules/KDECompilerSettings.cmake b/kde-modules/KDECompilerSett
|
||||
index 63a5ce1..c42fd55 100644
|
||||
--- a/kde-modules/KDECompilerSettings.cmake
|
||||
+++ b/kde-modules/KDECompilerSettings.cmake
|
||||
@@ -210,6 +210,46 @@ if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR
|
||||
@@ -402,6 +402,46 @@ if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-operator-names")
|
||||
endif()
|
||||
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake
|
||||
index cafb7ad..bb64366 100644
|
||||
--- a/kde-modules/KDEInstallDirs.cmake
|
||||
+++ b/kde-modules/KDEInstallDirs.cmake
|
||||
@@ -249,6 +249,10 @@ if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GN
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
+elseif (APPLE)
|
||||
+ # for now we don't change the current behaviour by default
|
||||
+ option(APPLE_FORCE_UNIX_DIRS "Force enable installation to standard Unix locations on Mac" ON)
|
||||
+ option(APPLE_SUPPRESS_INSTALLDIRS_WARNING "Suppress warnings about the chosen install locations on Mac" OFF)
|
||||
endif()
|
||||
|
||||
set(_gnu_install_dirs_vars
|
||||
@@ -459,6 +463,9 @@ if(NOT DEFINED KDE_INSTALL_USE_QT_SYS_PATHS)
|
||||
if(qt_install_prefix_dir STREQUAL "${CMAKE_INSTALL_PREFIX}")
|
||||
message(STATUS "Installing in the same prefix as Qt, adopting their path scheme.")
|
||||
set(_default_KDE_INSTALL_USE_QT_SYS_PATHS ON)
|
||||
+ elseif(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
|
||||
+ message(STATUS "Using native Mac installation locations, adopting Qt's path scheme.")
|
||||
+ set(_default_KDE_INSTALL_USE_QT_SYS_PATHS ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -525,20 +532,41 @@ if (WIN32)
|
||||
_define_relative(DATAROOTDIR BINDIR "data"
|
||||
"read-only architecture-independent data root"
|
||||
SHARE_INSTALL_PREFIX)
|
||||
+ set(KDE_INSTALL_CROSSPLATFORM_DATAROOTDIR ${KDE_INSTALL_DATAROOTDIR})
|
||||
+elseif(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
|
||||
+ _define_absolute(DATAROOTDIR "/Library/Application Support"
|
||||
+ "read-only architecture-independent data root")
|
||||
+ _define_absolute(CROSSPLATFORM_DATAROOTDIR "share"
|
||||
+ "read-only architecture-independent data root"
|
||||
+ SHARE_INSTALL_PREFIX)
|
||||
else()
|
||||
_define_absolute(DATAROOTDIR "share"
|
||||
"read-only architecture-independent data root"
|
||||
SHARE_INSTALL_PREFIX)
|
||||
+ set(KDE_INSTALL_CROSSPLATFORM_DATAROOTDIR ${KDE_INSTALL_DATAROOTDIR})
|
||||
endif()
|
||||
|
||||
_define_relative(DATADIR DATAROOTDIR ""
|
||||
"read-only architecture-independent data"
|
||||
DATA_INSTALL_DIR)
|
||||
-_define_non_cache(DATADIR_KF5 "${CMAKE_INSTALL_DATADIR}/kf5")
|
||||
+if(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
|
||||
+ _define_non_cache(DATADIR_KF5 "/Library/Application Support/kf5")
|
||||
+else()
|
||||
+ _define_non_cache(DATADIR_KF5 "${CMAKE_INSTALL_DATADIR}/kf5")
|
||||
+endif()
|
||||
if(NOT KDE_INSTALL_DIRS_NO_DEPRECATED)
|
||||
set(KF5_DATA_INSTALL_DIR "${CMAKE_INSTALL_DATADIR_KF5}")
|
||||
endif()
|
||||
|
||||
+if (APPLE AND NOT APPLE_SUPPRESS_INSTALLDIRS_WARNING)
|
||||
+ if(APPLE_FORCE_UNIX_DIRS)
|
||||
+ # for now we print a regular status message for the traditional default
|
||||
+ message(STATUS "Using standard Unix installation directories under ${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_DATAROOTDIR}")
|
||||
+ else()
|
||||
+ message(WARNING "Using Mac-specific installation directories under ${KDE_INSTALL_DATAROOTDIR}")
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
# Qt-specific data vars
|
||||
if(KDE_INSTALL_USE_QT_SYS_PATHS)
|
||||
query_qmake(qt_docs_dir QT_INSTALL_DOCS)
|
||||
@@ -581,40 +609,40 @@ _define_relative(JARDIR "" "jar"
|
||||
"Java AAR/JAR files for Android")
|
||||
|
||||
# Cross-desktop or other system things
|
||||
-_define_relative(ICONDIR DATAROOTDIR "icons"
|
||||
+_define_relative(ICONDIR CROSSPLATFORM_DATAROOTDIR "icons"
|
||||
"icons"
|
||||
ICON_INSTALL_DIR)
|
||||
-_define_relative(LOCALEDIR DATAROOTDIR "locale"
|
||||
+_define_relative(LOCALEDIR CROSSPLATFORM_DATAROOTDIR "locale"
|
||||
"knotify description files"
|
||||
LOCALE_INSTALL_DIR)
|
||||
-_define_relative(SOUNDDIR DATAROOTDIR "sounds"
|
||||
+_define_relative(SOUNDDIR CROSSPLATFORM_DATAROOTDIR "sounds"
|
||||
"sound files"
|
||||
SOUND_INSTALL_DIR)
|
||||
-_define_relative(TEMPLATEDIR DATAROOTDIR "templates"
|
||||
+_define_relative(TEMPLATEDIR CROSSPLATFORM_DATAROOTDIR "templates"
|
||||
"templates"
|
||||
TEMPLATES_INSTALL_DIR)
|
||||
-_define_relative(WALLPAPERDIR DATAROOTDIR "wallpapers"
|
||||
+_define_relative(WALLPAPERDIR CROSSPLATFORM_DATAROOTDIR "wallpapers"
|
||||
"desktop wallpaper images"
|
||||
WALLPAPER_INSTALL_DIR)
|
||||
-_define_relative(APPDIR DATAROOTDIR "applications"
|
||||
+_define_relative(APPDIR CROSSPLATFORM_DATAROOTDIR "applications"
|
||||
"application desktop files"
|
||||
XDG_APPS_INSTALL_DIR)
|
||||
-_define_relative(DESKTOPDIR DATAROOTDIR "desktop-directories"
|
||||
+_define_relative(DESKTOPDIR CROSSPLATFORM_DATAROOTDIR "desktop-directories"
|
||||
"desktop directories"
|
||||
XDG_DIRECTORY_INSTALL_DIR)
|
||||
-_define_relative(MIMEDIR DATAROOTDIR "mime/packages"
|
||||
+_define_relative(MIMEDIR CROSSPLATFORM_DATAROOTDIR "mime/packages"
|
||||
"mime description files"
|
||||
XDG_MIME_INSTALL_DIR)
|
||||
-_define_relative(METAINFODIR DATAROOTDIR "metainfo"
|
||||
+_define_relative(METAINFODIR CROSSPLATFORM_DATAROOTDIR "metainfo"
|
||||
"AppStream component metadata")
|
||||
-_define_relative(QCHDIR DATAROOTDIR "doc/qch"
|
||||
+_define_relative(QCHDIR CROSSPLATFORM_DATAROOTDIR "doc/qch"
|
||||
"documentation bundles in QCH format")
|
||||
-_define_relative(MANDIR DATAROOTDIR "man"
|
||||
+_define_relative(MANDIR UNIXCROSSPLATFORM_DATAROOTDIR "man"
|
||||
"man documentation"
|
||||
MAN_INSTALL_DIR)
|
||||
-_define_relative(INFODIR DATAROOTDIR "info"
|
||||
+_define_relative(INFODIR CROSSPLATFORM_DATAROOTDIR "info"
|
||||
"info documentation")
|
||||
-_define_relative(DBUSDIR DATAROOTDIR "dbus-1"
|
||||
+_define_relative(DBUSDIR CROSSPLATFORM_DATAROOTDIR "dbus-1"
|
||||
"D-Bus")
|
||||
_define_relative(DBUSINTERFACEDIR DBUSDIR "interfaces"
|
||||
"D-Bus interfaces"
|
||||
@@ -2,7 +2,7 @@ diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake
|
||||
index cafb7ad..bb64366 100644
|
||||
--- a/kde-modules/KDEInstallDirs.cmake
|
||||
+++ b/kde-modules/KDEInstallDirs.cmake
|
||||
@@ -249,6 +249,10 @@ if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GN
|
||||
@@ -252,6 +252,10 @@ if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GN
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -23,7 +23,7 @@ index cafb7ad..bb64366 100644
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -525,20 +532,41 @@ if (WIN32)
|
||||
@@ -535,20 +542,41 @@ if (WIN32)
|
||||
_define_relative(DATAROOTDIR BINDIR "data"
|
||||
"read-only architecture-independent data root"
|
||||
SHARE_INSTALL_PREFIX)
|
||||
@@ -66,7 +66,7 @@ index cafb7ad..bb64366 100644
|
||||
# Qt-specific data vars
|
||||
if(KDE_INSTALL_USE_QT_SYS_PATHS)
|
||||
query_qmake(qt_docs_dir QT_INSTALL_DOCS)
|
||||
@@ -581,40 +609,40 @@ _define_relative(JARDIR "" "jar"
|
||||
@@ -595,40 +623,40 @@ _define_relative(JARDIR "" "jar"
|
||||
"Java AAR/JAR files for Android")
|
||||
|
||||
# Cross-desktop or other system things
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
diff --git a/kde-modules/KDECompilerSettings.cmake b/kde-modules/KDECompilerSettings.cmake
|
||||
index c42fd55..6e5193e 100644
|
||||
--- a/kde-modules/KDECompilerSettings.cmake
|
||||
+++ b/kde-modules/KDECompilerSettings.cmake
|
||||
@@ -295,9 +295,9 @@ endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -DQT_NO_EXCEPTIONS")
|
||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND NOT WIN32)
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -DQT_NO_EXCEPTIONS")
|
||||
#elseif (MSVC OR (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Intel"))
|
||||
# Exceptions appear to be disabled by default for MSVC
|
||||
# http://msdn.microsoft.com/en-us/library/1deeycx5.aspx
|
||||
@@ -315,9 +315,13 @@ macro(_kdecompilersettings_append_exception_flag VAR)
|
||||
set(${VAR} "${${VAR}} -fexceptions")
|
||||
endif()
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
- set(${VAR} "${${VAR}} -fexceptions")
|
||||
+ string(REPLACE " -DQT_NO_EXCEPTIONS " " " ${VAR} " ${${VAR}} ")
|
||||
+ # it's likely that -DQT_NO_EXCEPTIONS from CMAKE_CXX_FLAGS never made it to the COMPILE_OPTIONS
|
||||
+ # so we override/undo that global setting for this file
|
||||
+ set(${VAR} "${${VAR}} -fexceptions -UQT_NO_EXCEPTIONS")
|
||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
- set(${VAR} "${${VAR}} -fexceptions")
|
||||
+ string(REPLACE " -DQT_NO_EXCEPTIONS " " " ${VAR} " ${${VAR}} ")
|
||||
+ set(${VAR} "${${VAR}} -fexceptions -UQT_NO_EXCEPTIONS")
|
||||
endif()
|
||||
string(STRIP "${${VAR}}" ${VAR})
|
||||
endmacro()
|
||||
@@ -342,10 +346,10 @@ function(KDE_TARGET_ENABLE_EXCEPTIONS target mode)
|
||||
if (WIN32)
|
||||
target_compile_options(${target} ${mode} "$<$<CXX_COMPILER_ID:Intel>:-EHsc>")
|
||||
else()
|
||||
- target_compile_options(${target} ${mode} "$<$<CXX_COMPILER_ID:Intel>:-fexceptions>")
|
||||
+ target_compile_options(${target} ${mode} "$<$<CXX_COMPILER_ID:Intel>:-fexceptions;-UQT_NO_EXCEPTIONS>")
|
||||
endif()
|
||||
target_compile_options(${target} ${mode}
|
||||
- "$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-fexceptions>")
|
||||
+ "$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-fexceptions;-UQT_NO_EXCEPTIONS>")
|
||||
endfunction()
|
||||
|
||||
function(KDE_ENABLE_EXCEPTIONS)
|
||||
@@ -2,7 +2,7 @@ diff --git a/kde-modules/KDECompilerSettings.cmake b/kde-modules/KDECompilerSett
|
||||
index c42fd55..6e5193e 100644
|
||||
--- a/kde-modules/KDECompilerSettings.cmake
|
||||
+++ b/kde-modules/KDECompilerSettings.cmake
|
||||
@@ -295,9 +295,9 @@ endif()
|
||||
@@ -494,9 +494,9 @@ endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
@@ -14,7 +14,7 @@ index c42fd55..6e5193e 100644
|
||||
#elseif (MSVC OR (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Intel"))
|
||||
# Exceptions appear to be disabled by default for MSVC
|
||||
# http://msdn.microsoft.com/en-us/library/1deeycx5.aspx
|
||||
@@ -315,9 +315,13 @@ macro(_kdecompilersettings_append_exception_flag VAR)
|
||||
@@ -514,9 +514,13 @@ macro(_kdecompilersettings_append_exception_flag VAR)
|
||||
set(${VAR} "${${VAR}} -fexceptions")
|
||||
endif()
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
@@ -30,7 +30,7 @@ index c42fd55..6e5193e 100644
|
||||
endif()
|
||||
string(STRIP "${${VAR}}" ${VAR})
|
||||
endmacro()
|
||||
@@ -342,10 +346,10 @@ function(KDE_TARGET_ENABLE_EXCEPTIONS target mode)
|
||||
@@ -541,10 +545,10 @@ function(KDE_TARGET_ENABLE_EXCEPTIONS target mode)
|
||||
if (WIN32)
|
||||
target_compile_options(${target} ${mode} "$<$<CXX_COMPILER_ID:Intel>:-EHsc>")
|
||||
else()
|
||||
|
||||
Reference in New Issue
Block a user