From 506bd64a3b30fbb5c1940a796f82e281053db4bd Mon Sep 17 00:00:00 2001 From: Alex Richardson Date: Thu, 23 Jan 2014 16:09:46 +0100 Subject: Only set QT_STRICT_ITERATORS when not compiling with MSVC On MSVC linker errors will happen when this flag is set (with Qt < 5.3) REVIEW: 115234 --- kde-modules/KDEFrameworkCompilerSettings.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kde-modules/KDEFrameworkCompilerSettings.cmake b/kde-modules/KDEFrameworkCompilerSettings.cmake index d71c407f..0799a8d7 100644 --- a/kde-modules/KDEFrameworkCompilerSettings.cmake +++ b/kde-modules/KDEFrameworkCompilerSettings.cmake @@ -2,10 +2,17 @@ include(KDECompilerSettings) add_definitions(-DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII - -DQT_STRICT_ITERATORS -DQT_NO_URL_CAST_FROM_STRING -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_QSTRINGBUILDER ) +if(NOT MSVC) + # QT_STRICT_ITERATORS breaks MSVC: it tries to link to QTypedArrayData symbols + # when using foreach. However these symbols don't actually exist + # not having QT_STRICT_ITERATORS defined fixes this issue. + # This is fixed by https://codereview.qt-project.org/#change,76311 + # TODO: set QT_STRICT_ITERATORS on all platforms once we depend on Qt 5.3 + add_definitions(-DQT_STRICT_ITERATORS) +endif() -- cgit v1.2.1