summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2012-05-09 18:52:44 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-17 05:14:26 +0200
commit2b21dd69d6a4e47f0ec3d3958ab1def0983ce76c (patch)
tree5ddb2fc848bb3a57b3b122c0783cb01fd9c80237 /mkspecs
parentd07982b104de5dc2b54bef09c071500ce22cf539 (diff)
turn off exceptions by default where they aren't required
This significantly reduces the size of the generated code in places where we don't need exceptions. The -(no-)exceptions configure flag has been removed in the process, as there is now a fine grained way to control this on a per module level, and Qt is being compiled without exceptions in most places. Change-Id: I99a15c5d03339db1fbffd4987935d0d671cdbc32 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/gcc-base.conf4
-rw-r--r--mkspecs/features/default_pre.prf2
-rw-r--r--mkspecs/features/exceptions.prf (renamed from mkspecs/features/win32/exceptions.prf)1
-rw-r--r--mkspecs/features/exceptions_off.prf (renamed from mkspecs/features/win32/exceptions_off.prf)2
-rw-r--r--mkspecs/features/qt_module.prf3
-rw-r--r--mkspecs/irix-cc-64/qmake.conf3
-rw-r--r--mkspecs/irix-cc/qmake.conf3
7 files changed, 15 insertions, 3 deletions
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
index 4a8419aa78..a944dd71a3 100644
--- a/mkspecs/common/gcc-base.conf
+++ b/mkspecs/common/gcc-base.conf
@@ -43,6 +43,7 @@ QMAKE_CFLAGS_STATIC_LIB += -fPIC
QMAKE_CFLAGS_APP += -fPIE
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
+QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
@@ -55,9 +56,10 @@ QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP
QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF
QMAKE_LFLAGS +=
QMAKE_LFLAGS_DEBUG +=
QMAKE_LFLAGS_APP +=
QMAKE_LFLAGS_RELEASE +=
-
+QMAKE_LFLAGS_EXCEPTIONS_OFF +=
diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf
index f4292c3312..2876e7d29e 100644
--- a/mkspecs/features/default_pre.prf
+++ b/mkspecs/features/default_pre.prf
@@ -1,6 +1,6 @@
load(exclusive_builds)
### Qt 5: remove "uic" and "resources" - or add "qt"
-CONFIG = lex yacc warn_on debug uic resources $$CONFIG
+CONFIG = lex yacc warn_on debug uic resources exceptions $$CONFIG
!build_pass:exists($$_PRO_FILE_PWD_/sync.profile) {
PRO_BASENAME = $$basename(_PRO_FILE_)
diff --git a/mkspecs/features/win32/exceptions.prf b/mkspecs/features/exceptions.prf
index 786665920f..ebfd5837cf 100644
--- a/mkspecs/features/win32/exceptions.prf
+++ b/mkspecs/features/exceptions.prf
@@ -2,4 +2,5 @@ CONFIG -= exceptions_off
QMAKE_CFLAGS *= $$QMAKE_CFLAGS_EXCEPTIONS_ON
QMAKE_CXXFLAGS *= $$QMAKE_CXXFLAGS_EXCEPTIONS_ON
QMAKE_LFLAGS *= $$QMAKE_LFLAGS_EXCEPTIONS_ON
+DEFINES -= QT_NO_EXCEPTIONS
diff --git a/mkspecs/features/win32/exceptions_off.prf b/mkspecs/features/exceptions_off.prf
index 9de53d3417..9c8a4043ea 100644
--- a/mkspecs/features/win32/exceptions_off.prf
+++ b/mkspecs/features/exceptions_off.prf
@@ -2,4 +2,4 @@ CONFIG -= exceptions
QMAKE_CFLAGS += $$QMAKE_CFLAGS_EXCEPTIONS_OFF
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_EXCEPTIONS_OFF
QMAKE_LFLAGS += $$QMAKE_LFLAGS_EXCEPTIONS_OFF
-
+DEFINES += QT_NO_EXCEPTIONS
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index b71ef61252..865e3e51e5 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -28,3 +28,6 @@ mac {
CONFIG += absolute_library_soname
}
}
+
+# Qt modules get compiled without exceptions enabled by default
+CONFIG += exceptions_off
diff --git a/mkspecs/irix-cc-64/qmake.conf b/mkspecs/irix-cc-64/qmake.conf
index ac5f3b5847..08fd50dc54 100644
--- a/mkspecs/irix-cc-64/qmake.conf
+++ b/mkspecs/irix-cc-64/qmake.conf
@@ -56,6 +56,7 @@ QMAKE_CFLAGS_SHLIB =
QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CFLAGS_YACC = -woff 1110,1174,3262
QMAKE_CFLAGS_THREAD =
+QMAKE_CFLAGS_EXCEPTIONS_OFF = -LANG:exceptions=off
QMAKE_CXX = CC
QMAKE_CXXFLAGS = -64 -signed -LANG:std:libc_in_namespace_std=ON -woff 1209,1355,1375,1424,3303
@@ -68,6 +69,7 @@ QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD =
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
QMAKE_INCDIR =
QMAKE_LIBDIR =
@@ -89,6 +91,7 @@ QMAKE_LFLAGS_SONAME = -Wl,-soname,
QMAKE_LFLAGS_THREAD =
QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
+QMAKE_LFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =
diff --git a/mkspecs/irix-cc/qmake.conf b/mkspecs/irix-cc/qmake.conf
index eaec795f2a..26b3f7c14c 100644
--- a/mkspecs/irix-cc/qmake.conf
+++ b/mkspecs/irix-cc/qmake.conf
@@ -56,6 +56,7 @@ QMAKE_CFLAGS_SHLIB =
QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CFLAGS_YACC = -woff 1110,1174,3262
QMAKE_CFLAGS_THREAD =
+QMAKE_CFLAGS_EXCEPTIONS_OFF = -LANG:exceptions=off
QMAKE_CXX = CC
QMAKE_CXXFLAGS = -n32 -signed -LANG:std:libc_in_namespace_std=ON -woff 1209,1355,1375,1424,3303
@@ -68,6 +69,7 @@ QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD =
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
QMAKE_INCDIR =
QMAKE_LIBDIR =
@@ -89,6 +91,7 @@ QMAKE_LFLAGS_SONAME = -Wl,-soname,
QMAKE_LFLAGS_THREAD =
QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
+QMAKE_LFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF
QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD =