path: root/src/corelib/Qt5CoreMacros.cmake
diff options
authorThiago Macieira <>2016-04-13 17:25:37 -0700
committerThiago Macieira <>2016-07-20 02:54:09 +0000
commitda04322b4c429de9a6f5aa06545c10284ec2e56d (patch)
tree772dd5a5fa5d93df2dfceec0c767c8b2d0f7eb6b /src/corelib/Qt5CoreMacros.cmake
parent36d524e6a3b64a8c35805c1b868d6d67ccae765c (diff)
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) <>
Diffstat (limited to 'src/corelib/Qt5CoreMacros.cmake')
1 files changed, 3 insertions, 0 deletions
diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake
index 9235641544..23909c9f3f 100644
--- a/src/corelib/Qt5CoreMacros.cmake
+++ b/src/corelib/Qt5CoreMacros.cmake
@@ -90,6 +90,9 @@ macro(QT5_GET_MOC_FLAGS _moc_flags)
set(${_moc_flags} ${${_moc_flags}} -DWIN32)
+ if (MSVC)
+ set(${_moc_flags} --compiler-flavor=msvc)
+ endif()