Partial fix for WebKit compilation on Windows
authorSimon Hausmann <simon.hausmann@nokia.com>
Tue, 12 Jun 2012 07:57:10 +0000 (09:57 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 13 Jun 2012 21:24:08 +0000 (23:24 +0200)
commit5230d62feb8822743b8204382225485f27bc7b69
tree836f9207cd28b71965ae7c07d6e895eba2262a7f
parent1d859ef80540ec3dd64f4f7bda3a8e415965650c
Partial fix for WebKit compilation on Windows

qdatetime.h uses std::min/max and on Windows windows.h (or some subsequent
header file) may under certain circumstances define min/max as macros.

The easiest way to prevent the windows header files from doing that is to
define NOMINMAX in the place right before windows.h is included. The other
way is to define min and max to min/max themselves to prevent windows.h
from doing its evil thing.

If a user of Qt (WebKit in this case) chooses the approach of defining
min/max to themselves and then includes qdatetime.h, then a subsequent
inclusion of windows.h doesn't work because qdatetime.h undefines min/max.

We should not enforce the type of workaround needed, therefore this patch
removes the workaround from qdatetime.h and requires user code that
happens to include windows header files before qdatetime.h (seldom case)
to choose either workaround.

Change-Id: I7347eec7369491a065e894cff557004e069453d5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/tools/qdatetime.h
src/network/socket/qnativesocketengine_win.cpp
src/plugins/platforms/windows/accessible/comutils.cpp
tests/auto/network/kernel/qhostinfo/tst_qhostinfo.cpp
tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp
tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
tests/benchmarks/corelib/io/qdiriterator/main.cpp