Change c++11 behaviour of net-im/libqtelegram-ae and net-im/telegramqml.

Instead of explicitely disabling c++11 mode as the code uses narrowing of
unsigned ints to ints, simply pass -no-c++11-narrowing if the compiler is clang.
This is done in preparation for Qt 5.7.1, which requires c++11 mode.

Approved by:	rakuco (mentor)
This commit is contained in:
Tobias C. Berner 2017-02-12 12:02:44 +00:00
parent 56fbe3026a
commit 89f2abf9c3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=433938
4 changed files with 38 additions and 12 deletions

View file

@ -3,6 +3,7 @@
PORTNAME= libqtelegram-ae
PORTVERSION= 6.1
PORTREVISION= 1
DISTVERSIONPREFIX= v
DISTVERSIONSUFFIX= -stable
CATEGORIES= net-im
@ -22,12 +23,6 @@ USE_QT5= qmake_build buildtools_build core gui network multimedia
USE_OPENSSL= yes
USE_LDCONFIG= yes
# Explicitly disable C++11, as Qt 5.6 defaults to -std=gnu++11 when the
# compiler supports it and the build currently fails.
# ../libqtelegram-aseman-edition-6.1-stable/telegram/types/accountdaysttl.cpp:51:10: error: case value evaluates to 3100684255, which cannot be narrowed to type 'int' [-Wc++11-narrowing]
# case typeAccountDaysTTL: {
QMAKE_ARGS= CONFIG-="c++11"
post-patch:
@${REINPLACE_CMD} -e "/OPENSSL_INCLUDE_PATH/d" \
${WRKSRC}/libqtelegram-ae.pri

View file

@ -0,0 +1,18 @@
C++11 does not allow narrowing of integer types by default -- however multiple
constants defined in the code are too large to fit into a signed int, and rely
on the narrowing behaviour.
--- libqtelegram-ae.pro.orig 2017-02-10 23:08:39 UTC
+++ libqtelegram-ae.pro
@@ -25,6 +25,11 @@ linux {
}
}
+# Explictely allow narrowing of integer types
+clang {
+ QMAKE_CXXFLAGS += -Wno-c++11-narrowing
+}
+
!contains(CONFIG, no_install) {
isEmpty(PREFIX) {
isEmpty(INSTALL_HEADERS_PREFIX): INSTALL_HEADERS_PREFIX = $$[QT_INSTALL_HEADERS]

View file

@ -3,6 +3,7 @@
PORTNAME= telegramqml
PORTVERSION= 0.9.2
PORTREVISION= 1
DISTVERSIONPREFIX= v
CATEGORIES= net-im
@ -25,12 +26,6 @@ USE_LDCONFIG= yes
QMAKE_ARGS= BUILD_MODE+=lib \
LIBQTELEGRAM_INCLUDE_PATH="${LOCALBASE}/include/libqtelegram-ae"
# Explicitly disable C++11, as Qt 5.6 defaults to -std=gnu++11 when the
# compiler supports it and the build currently fails.
# ../TelegramQML-0.9.2/telegramqml.cpp:4794:10: error: case value evaluates to 2573335900, which cannot be narrowed to type 'int' [-Wc++11-narrowing]
# case Update::typeUpdateReadHistoryInbox:
QMAKE_ARGS+= CONFIG-="c++11"
post-patch:
@${REINPLACE_CMD} -e "/isEmpty(OPENSSL_INCLUDE_PATH)/d" \
${WRKSRC}/telegramqml.pri

View file

@ -0,0 +1,18 @@
C++11 does not allow narrowing of integer types by default -- however multiple
constants defined in the code are too large to fit into a signed int, and rely
on the narrowing behaviour.
--- telegramqml.pro.orig 2017-02-11 13:02:31 UTC
+++ telegramqml.pro
@@ -31,6 +31,11 @@ linux {
}
}
+# Explictely allow narrowing of integer types
+clang {
+ QMAKE_CXXFLAGS += -Wno-c++11-narrowing
+}
+
contains(BUILD_MODE,lib) {
isEmpty(PREFIX) {
isEmpty(INSTALL_HEADERS_PREFIX): INSTALL_HEADERS_PREFIX = $$[QT_INSTALL_HEADERS]