qt5base-lts/mkspecs
Thiago Macieira 36d524e6a3 moc: get the system #defines from the compiler itself
In order for moc to properly parse #ifdefs and family, we've had
QMAKE_COMPILER_DEFINES as a list of pre-defined macros from the
compiler. That list is woefully incomplete.

Instead, let's simply ask the compiler for the list. With GCC and
family, we use the -dM flag while preprocessing. With ICC on Windows,
the flag gains an extra "Q" but is otherwise the same. For MSVC, it
requires using some undocumented switches and parsing environment
variables (I've tested MSVC 2012, 2013 and 2015).

The new moc option is called --include to be similar to GCC's -include
option. It does more than just parse a list of pre-defined macros and
can be used to insert any sort of code that moc needs to parse prior to
the main file.

Change-Id: I7de033f80b0e4431b7f1ffff13fca02dbb60a0a6
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-07-20 02:54:03 +00:00
..
aix-g++ Updated license headers 2016-01-15 12:25:24 +00:00
aix-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
aix-xlc Updated license headers 2016-01-15 12:25:24 +00:00
aix-xlc-64 Updated license headers 2016-01-15 12:25:24 +00:00
android-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-06 09:04:55 +02:00
common Remove the -target command line option 2016-07-05 15:49:03 +00:00
cygwin-g++ Updated license headers 2016-01-15 12:25:24 +00:00
darwin-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-20 08:00:26 +02:00
devices Merge remote-tracking branch 'origin/5.7' into dev 2016-06-21 08:39:41 +02:00
features moc: get the system #defines from the compiler itself 2016-07-20 02:54:03 +00:00
freebsd-clang Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-20 08:00:26 +02:00
freebsd-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-20 08:00:26 +02:00
haiku-g++ Updated license headers 2016-01-15 12:25:24 +00:00
hpux-acc Updated license headers 2016-01-15 12:25:24 +00:00
hpux-acc-64 Updated license headers 2016-01-15 12:25:24 +00:00
hpux-acc-o64 Updated license headers 2016-01-15 12:25:24 +00:00
hpux-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
hpux-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
hpuxi-acc-32 Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
hpuxi-acc-64 Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
hpuxi-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
hurd-g++ Clean up some unused variables in the qmake.conf files 2016-06-23 19:43:04 +00:00
integrity-armv7 Add INTEGRITY Framebuffer-based plugin as a platform plugin. 2016-03-22 10:42:03 +00:00
integrity-armv7-imx6 Add support for INTEGRITY with eglfs-viv. 2016-03-22 10:45:31 +00:00
integrity-x86 Add INTEGRITY Framebuffer-based plugin as a platform plugin. 2016-03-22 10:42:03 +00:00
irix-cc Updated license headers 2016-01-15 12:25:24 +00:00
irix-cc-64 Updated license headers 2016-01-15 12:25:24 +00:00
irix-g++ Updated license headers 2016-01-15 12:25:24 +00:00
irix-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-arm-gnueabi-g++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-clang Updated license headers 2016-01-15 12:25:24 +00:00
linux-clang-libc++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-cxx Updated license headers 2016-01-15 12:25:24 +00:00
linux-g++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-g++-32 Updated license headers 2016-01-15 12:25:24 +00:00
linux-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc-32 Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-kcc Updated license headers 2016-01-15 12:25:24 +00:00
linux-llvm Updated license headers 2016-01-15 12:25:24 +00:00
linux-lsb-g++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-pgcc Updated license headers 2016-01-15 12:25:24 +00:00
lynxos-g++ Updated license headers 2016-01-15 12:25:24 +00:00
macx-clang Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
macx-clang-32 Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
macx-g++ Merge remote-tracking branch 'origin/5.7' into dev 2016-06-23 14:24:55 +02:00
macx-g++40 Merge remote-tracking branch 'origin/5.7' into dev 2016-06-23 14:24:55 +02:00
macx-g++42 Merge remote-tracking branch 'origin/5.7' into dev 2016-06-23 14:24:55 +02:00
macx-g++-32 Merge remote-tracking branch 'origin/5.7' into dev 2016-06-23 14:24:55 +02:00
macx-icc Merge remote-tracking branch 'origin/5.6' into 5.7 2016-04-25 14:03:45 +02:00
macx-ios-clang Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
macx-llvm Merge remote-tracking branch 'origin/5.7' into dev 2016-06-23 14:24:55 +02:00
macx-tvos-clang Add support for Apple tvOS 2016-05-17 16:11:23 +00:00
macx-xcode Updated license headers 2016-01-15 12:25:24 +00:00
modules Adjust wiki links to the new redirect 2015-03-04 15:36:12 +00:00
netbsd-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-20 08:00:26 +02:00
openbsd-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-20 08:00:26 +02:00
qnx-aarch64le-qcc Add some 64-bit QNX platforms 2016-06-22 14:59:26 +00:00
qnx-armle-v7-qcc Updated license headers 2016-01-15 12:25:24 +00:00
qnx-x86-64-qcc Add some 64-bit QNX platforms 2016-06-22 14:59:26 +00:00
qnx-x86-qcc Updated license headers 2016-01-15 12:25:24 +00:00
sco-cc Updated license headers 2016-01-15 12:25:24 +00:00
sco-g++ Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc-64 Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc-64-stlport Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc-stlport Updated license headers 2016-01-15 12:25:24 +00:00
solaris-g++ Updated license headers 2016-01-15 12:25:24 +00:00
solaris-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
tru64-cxx Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
tru64-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-23 10:29:37 +02:00
unixware-cc Updated license headers 2016-01-15 12:25:24 +00:00
unixware-g++ Updated license headers 2016-01-15 12:25:24 +00:00
unsupported Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-10 23:27:10 +02:00
win32-clang-msvc2015 Add initial clang-cl support to Qt 2016-02-11 12:54:06 +00:00
win32-g++ Merge remote-tracking branch 'origin/5.6' into 5.7 2016-02-29 12:34:31 +01:00
win32-icc Merge remote-tracking branch 'origin/5.6' into 5.7 2016-03-23 08:29:43 +01:00
win32-msvc2005 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2008 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2010 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2012 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
win32-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00
winphone-arm-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winphone-x86-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-arm-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-arm-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x64-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x64-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x86-msvc2013 Updated license headers 2016-01-15 12:25:24 +00:00
winrt-x86-msvc2015 Updated license headers 2016-01-15 12:25:24 +00:00