From da04322b4c429de9a6f5aa06545c10284ec2e56d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 13 Apr 2016 17:25:37 -0700 Subject: Make moc obey the preprocessor environment variable for include paths C preprocessors augment their standard list of include paths from the environment: Unix preprocessors use $C_INCLUDE_PATH (for C) and $CPLUS_INCLUDE_PATH (for C++), plus CPATH for both, whereas MSVC uses the an environment variable simply called "INCLUDE". Handling this for MSVC is particularly important because the VCVARSALL.BAT script sets the necessary #include paths in the environment for important things. Without that being parsed, moc won't find some #defines, like WINAPI_DESKTOP_FAMILY. [ChangeLog][moc] qmake and moc now cooperate to use the Visual Studio environment variables (set by the VCVARSALL.BAT script) to find system include files. A possible consequence is that moc parses application headers slightly differently, depending on #if conditions that depended on macros that previous versions had not seen #define'd. Implementers of other buildsystems are advised to pass the --compiler-flavor=msvc option to moc. Change-Id: I7e06274214d1939b0124e5b4bf169cceaef9ca46 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/network/socket/socket.pri | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/network/socket') diff --git a/src/network/socket/socket.pri b/src/network/socket/socket.pri index 2d80f38bec..2e3e26d37d 100644 --- a/src/network/socket/socket.pri +++ b/src/network/socket/socket.pri @@ -39,6 +39,10 @@ unix: { unix:HEADERS += \ socket/qnet_unix_p.h +# Suppress deprecation warnings with moc because MS headers have +# invalid C/C++ code otherwise. +msvc: QMAKE_MOC_OPTIONS += -D_WINSOCK_DEPRECATED_NO_WARNINGS + win32:!winrt:SOURCES += socket/qnativesocketengine_win.cpp \ socket/qlocalsocket_win.cpp \ socket/qlocalserver_win.cpp -- cgit v1.2.3