diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2016-04-13 17:25:37 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2016-07-20 02:54:09 +0000 |
commit | da04322b4c429de9a6f5aa06545c10284ec2e56d (patch) | |
tree | 772dd5a5fa5d93df2dfceec0c767c8b2d0f7eb6b /mkspecs | |
parent | 36d524e6a3b64a8c35805c1b868d6d67ccae765c (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) <ogoffart@woboq.com>
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/features/moc.prf | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index 693be4a22d..6368c8e394 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -51,6 +51,7 @@ defineReplace(mocCmdBase) { } RET = $$QMAKE_MOC $(DEFINES) + msvc: RET += --compiler-flavor=msvc isEmpty(MOC_PREDEF_FILE): RET += $$join(QMAKE_COMPILER_DEFINES, " -D", -D) else: RET += --include $$moc_predefs.output |