src/gui/dialogs/dialogs.pri
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 30 5dc02b23752f
--- a/src/gui/dialogs/dialogs.pri	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/gui/dialogs/dialogs.pri	Tue Feb 02 00:43:10 2010 +0200
@@ -28,13 +28,27 @@
         dialogs/qprintpreviewdialog.h
 
 !embedded:mac {
-    OBJECTIVE_SOURCES += dialogs/qcolordialog_mac.mm \
-                         dialogs/qfiledialog_mac.mm \
+    OBJECTIVE_SOURCES += dialogs/qfiledialog_mac.mm \
                          dialogs/qfontdialog_mac.mm \
                          dialogs/qnspanelproxy_mac.mm \
                          dialogs/qpagesetupdialog_mac.mm \
                          dialogs/qprintdialog_mac.mm
+
+# Compile qcolordialog_mac.mm with exception support, disregarding the -no-exceptions 
+# configure option. (qcolordialog_mac needs to catch exceptions thrown by cocoa)
+    EXCEPTION_SOURCES = dialogs/qcolordialog_mac.mm
+    exceptions_compiler.commands = $$QMAKE_CXX -c
+    exceptions_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+    exceptions_compiler.commands += -fexceptions
+    exceptions_compiler.dependency_type = TYPE_C
+    exceptions_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+    exceptions_compiler.input = EXCEPTION_SOURCES
+    exceptions_compiler.variable_out = OBJECTS
+    exceptions_compiler.name = compiling[exceptopns] ${QMAKE_FILE_IN}
+    silent:exceptions_compiler.commands = @echo compiling[exceptopns] ${QMAKE_FILE_IN} && $$exceptions_compiler.commands
+    QMAKE_EXTRA_COMPILERS += exceptions_compiler
 }
+
 win32 {
     HEADERS += dialogs/qwizard_win_p.h
     SOURCES += dialogs/qdialogsbinarycompat_win.cpp \