Define __GNUC__ to be 4 on Mac OS X
authorBradley T. Hughes <bradley.hughes@nokia.com>
Fri, 4 Nov 2011 10:40:19 +0000 (11:40 +0100)
committerQt by Nokia <qt-info@nokia.com>
Mon, 14 Nov 2011 22:42:17 +0000 (23:42 +0100)
The QMAKE_COMPILER_DEFINES are used when running moc. In some cases, Qt
checks the __GNUC__ value to determine which version of GCC is being
used. In particular, the qtconcurrentfilter and qtconcurrentmap tests
fail to compile because moc ends up defining QT_NO_CONCURRENT_FILTER and
QT_NO_CONCURRENT_MAP since the condition __GNUC__ < 4 evaluates to true.

The Mac OS X development tools have not used gcc 3.x is a very long
time. The current version ships with llvm-gcc-4.2.1 and clang (which
also masquerades as gcc 4.2.1). Defining __GNUC__=4 makes sure that moc
preprocesses headers in the same way the compiler does.

Change-Id: Ie491d3f5b074fd1a509ffe6755f3308836817b6c
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
mkspecs/common/gcc-base-macx.conf

index 2894f86..79f6c11 100644 (file)
@@ -10,7 +10,7 @@
 
 include(gcc-base.conf)
 
-QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__
+QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__=4
 
 QMAKE_CFLAGS_X86    += -arch i386
 QMAKE_CFLAGS_X86_64 += -arch x86_64