qmake 与 配置文件

2023-12-06 20:10
文章标签 配置文件 qmake

本文主要是介绍qmake 与 配置文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用qmake生成makefile的时候,背后会先执行一堆用qmake language编写的库文件(配置文件),用于初始化一些环境相关的工作,为后续解析pro文件做准备。

下面是qmake解析一个新建的qt工程的pro文件背后所解析的配置文件的文件路径。通过特殊变量QMAKE_INTERNAL_INCLUDED_FILES来获取。解析的文件按解析完成时间从上到下排列,(排在前面的不一定是最先打开的)。这些配置文件中有定义一部分全局变量,可以在你的pro文件中访问。(qmake解析文件的访问顺序需要通过 -d参数来查看)

.qmake.super ,.qmake.conf ,.qmake.cache ,.qmake.stash是在解析配置文件之前就完成的,qmake对这几个文件设置LoadHidden参数给隐藏起来的。记录这些配置文件的qmake源码逻辑。

//E:\workspace\QtWork\qmake\library\qmakeevaluator.cpp
QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFile(const QString &fileName, QMakeHandler::EvalFileType type, LoadFlags flags)
{QMakeParser::ParseFlags pflags = QMakeParser::ParseUseCache;if (!(flags & LoadSilent))pflags |= QMakeParser::ParseReportMissing;if (ProFile *pro = m_parser->parsedProFile(fileName, pflags)) {m_locationStack.push(m_current);VisitReturn ok = visitProFile(pro, type, flags);m_current = m_locationStack.pop();pro->deref();if (ok == ReturnTrue && !(flags & LoadHidden)) {ProStringList &iif = m_valuemapStack.first()[ProKey("QMAKE_INTERNAL_INCLUDED_FILES")];ProString ifn(fileName);if (!iif.contains(ifn))iif << ifn;}return ok;} else {return ReturnFalse;}
}

 另外一个特殊的变量,QMAKE_INTERNAL_INCLUDED_FEATURES。

defineTest(printNames){for(var,ARGS):message($$var)
}
printNames($$QMAKE_INTERNAL_INCLUDED_FEATURES)#输出:
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_pre.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_config.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_functions.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_post.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_pre.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_config.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_functions.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_post.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prf
Project MESSAGE: D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prf

下面是调试qmake时(注意这里不是调试普通的工程文件,建议不要在调试普通工程文件时使用-d参数,但是可以在命令行窗口中用qmake生成makefile时使用-d参数。),用“-d” 参数时,打印出来的日志的一小部分,首先进入spec_pre.prf文件,“-d”参数,让qmake对每一句qmake language写的代码都做打印,可以对比下面日志和spec_pre.prf的内容
  D:\Qt\Qt5.12.0\5.12.0\msvc2015_64\mkspecs\features\spec_pre.prf

# This file is loaded by qmake right before loading the qmakespec.
# At this point, the built-in variables have been set up and the project's
# .qmake.super was read (if present).QMAKE_DIR_SEP           = $$DIR_SEPARATOR
QMAKE_DIRLIST_SEP       = $$DIRLIST_SEPARATORQMAKE_EXT_C             = .c
QMAKE_EXT_CPP           = .cpp .cc .cxx
QMAKE_EXT_OBJC          = .m
QMAKE_EXT_OBJCXX        = .mm
QMAKE_EXT_CPP_MOC       = .moc
QMAKE_EXT_H             = .h .hpp .hh .hxx
QMAKE_EXT_H_MOC         = .cpp
QMAKE_EXT_JS            = .js
QMAKE_EXT_LEX           = .l
QMAKE_EXT_LIBTOOL       = .la
QMAKE_EXT_PKGCONFIG     = .pc
QMAKE_EXT_PRL           = .prl
QMAKE_EXT_UI            = .ui
QMAKE_EXT_YACC          = .yQMAKE_CPP_MOD_MOC       =
QMAKE_H_MOD_MOC         = moc_
QMAKE_MOD_LEX           = _lex
QMAKE_MOD_YACC          = _yaccdefineTest(ensurePathEnv) {isEmpty(QMAKE_PATH_ENV) {QMAKE_PATH_ENV = $$(PATH)QMAKE_PATH_ENV = $$split(QMAKE_PATH_ENV, $$QMAKE_DIRLIST_SEP)export(QMAKE_PATH_ENV)}
}equals(QMAKE_HOST.os, Windows) {QMAKE_EXT_OBJ       = .objQMAKE_EXT_RES       = .resQMAKE_SH            =ensurePathEnv()for(dir, QMAKE_PATH_ENV) {exists($$dir/sh.exe) {QMAKE_SH = $$dir/sh.exebreak()}}
} else {QMAKE_EXT_CPP      += .CQMAKE_EXT_H        += .HQMAKE_EXT_OBJ       = .oQMAKE_SH            = sh
}CONFIG = file_copies qmake_use qt warn_on release link_prl
QT = core gui

这是qmake开始解析的调用堆栈spec_pre.prf,第9行的进入的evaluateFile是输入的pro工程文件。

杂谈:qmake解析一个简单的qt工程的 工程文件t.pro 时 完整配置文件访问记录:

QT +=network widgetsTEMPLATE = app
CONFIG += c++11 console
CONFIG -= app_bundleSOURCES += \main.cpp \base.cpp \base1.cppHEADERS += \base.h \base1.hDISTFILES +=RESOURCES +=message(CONFIG = $$COFIG)

配置文件文件访问与函数调用过程:

---------------------runQMake(int argc, char **argv)---------------------------------------------------start---------------------QMakeProject::QMakeProject()-------------------------------------------start end---------------------QMakeProject::read(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)----------start  parsing for checking the grammar error,and evalute the values---------------------QMakeEvaluator::evaluateFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------startDEBUG 0: evaluateing file E:/test/t1.pro---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------start---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles) if (flags & LoadPreFiles)----startQMakeBaseEnv **baseEnvPtr = &m_option->baseEnvs[QMakeBaseKey(m_buildRoot, m_stashfile, m_hostBuild)];//init m_option->baseEnvsif (!*baseEnvPtr)*baseEnvPtr = new QMakeBaseEnv;QMakeBaseEnv *baseEnv = *baseEnvPtr;if (!baseEnv->evaluator) {QMakeEvaluator *baseEval = new QMakeEvaluator(m_option, m_parser, m_vfs, m_handler);baseEnv->evaluator = baseEval;baseEval->loadSpec();---------------------LoadPreFiles:loadSpec()---------------start---------------------get value of four variable XQMAKESPEC、QMAKESPEC、QMAKEPATH、QMAKEFEATURES from .qmake.super  .qmake.cache .qmake.stash  if exsit---------------------------------evaluateFile(_QMAKE_SUPER_CACHE_/.qmake.super)------start end---------------------loadInternalSpec()----------------------start---------------------evaluateFeatureFile(spec_pre.prf)-------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_pre.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_pre.prf---------------------evaluateFeatureFile(spec_pre.prf)-------end---------------------evaluateFile(qmake.conf)----------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/win32-msvc/qmake.confDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-desktop.confDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/angle.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/angle.confDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/windows-vulkan.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/windows-vulkan.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-desktop.confDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_config.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/qconfig.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/qconfig.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3danimation.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3danimation.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3danimation_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3danimation_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dcore.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dcore.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dcore_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dcore_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dextras.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dextras.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dextras_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dextras_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dinput.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dinput.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dinput_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dinput_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dlogic.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dlogic.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dlogic_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dlogic_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquick.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquick.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquick_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquick_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickanimation.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickanimation.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickanimation_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickanimation_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickextras.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickextras.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickextras_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickextras_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickinput.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickinput.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickinput_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickinput_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickrender.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickrender.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickrender_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickrender_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickscene2d.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickscene2d.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickscene2d_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3dquickscene2d_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3drender.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3drender.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3drender_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_3drender_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_accessibility_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_accessibility_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axbase.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axbase.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axbase_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axbase_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axcontainer.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axcontainer.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axcontainer_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axcontainer_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axserver.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axserver.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axserver_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_axserver_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_bluetooth.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_bluetooth.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_bluetooth_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_bluetooth_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_bootstrap_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_bootstrap_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_concurrent.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_concurrent.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_concurrent_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_concurrent_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_core.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_core.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_core_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_core_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_dbus.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_dbus.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_dbus_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_dbus_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_designer.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_designer.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_designer_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_designer_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_designercomponents_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_designercomponents_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_devicediscovery_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_devicediscovery_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_edid_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_edid_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_egl_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_egl_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_fb_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_fb_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_fontdatabase_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_fontdatabase_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gamepad.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gamepad.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gamepad_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gamepad_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gui.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gui.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gui_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_gui_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_help.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_help.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_help_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_help_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_location.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_location.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_location_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_location_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimedia.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimedia.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimedia_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimedia_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimediawidgets.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimediawidgets.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimediawidgets_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_multimediawidgets_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_network.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_network.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_network_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_network_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_nfc.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_nfc.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_nfc_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_nfc_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_opengl.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_opengl.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_opengl_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_opengl_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_openglextensions.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_openglextensions.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_openglextensions_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_openglextensions_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_packetprotocol_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_packetprotocol_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_platformcompositor_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_platformcompositor_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioning.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioning.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioning_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioning_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioningquick.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioningquick.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioningquick_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_positioningquick_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_printsupport.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_printsupport.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_printsupport_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_printsupport_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qml.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qml.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qml_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qml_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmldebug_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmldebug_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmldevtools_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmldevtools_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmltest.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmltest.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmltest_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qmltest_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quick.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quick.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quick_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quick_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickcontrols2.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickcontrols2.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickcontrols2_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickcontrols2_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickparticles_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickparticles_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickshapes_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickshapes_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quicktemplates2_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quicktemplates2_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickwidgets.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickwidgets.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickwidgets_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_quickwidgets_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_remoteobjects.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_remoteobjects.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_remoteobjects_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_remoteobjects_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_repparser.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_repparser.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_repparser_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_repparser_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_scxml.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_scxml.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_scxml_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_scxml_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sensors.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sensors.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sensors_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sensors_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialbus.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialbus.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialbus_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialbus_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialport.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialport.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialport_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_serialport_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sql.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sql.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sql_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_sql_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_svg.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_svg.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_svg_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_svg_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_testlib.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_testlib.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_testlib_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_testlib_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_texttospeech.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_texttospeech.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_texttospeech_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_texttospeech_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_theme_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_theme_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_uiplugin.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_uiplugin.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_uitools.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_uitools.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_uitools_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_uitools_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_vulkan_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_vulkan_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webchannel.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webchannel.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webchannel_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webchannel_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_websockets.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_websockets.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_websockets_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_websockets_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webview.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webview.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webview_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_webview_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_widgets.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_widgets.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_widgets_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_widgets_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_winextras.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_winextras.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_winextras_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_winextras_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xml.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xml.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xml_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xml_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xmlpatterns.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xmlpatterns.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xmlpatterns_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_xmlpatterns_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_zlib_private.priDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/modules/qt_lib_zlib_private.priDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_functions.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_functions.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt_config.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/win32-msvc/qmake.conf---------------------evaluateFile(qmake.conf)-----------------------------------------end---------------------evaluateFeatureFile(spec_post.prf)------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/spec_post.prf---------------------evaluateFeatureFile(spec_post.prf)--------------------------------end---------------------loadInternalSpec()-----------------------------------------end---------------------evaluateFile(_QMAKE_CONF_/.qmake.conf)-----------------------start end---------------------evaluateFile(_QMAKE_CACHE_/.qmake.cache)---------------------start end---------------------evaluateFile(_QMAKE_STASH_/.qmake.stash)---------------------start end---------------------loadSpec()--------------------------------------------------end}---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles) if (flags & LoadPreFiles)-----end---------------------evaluateCommand()  (process command input early_State  )--------------start end---------------------applyExtraConfigs()-------------------------------------------------start end---------------------evaluateFeatureFile(default_pre.prf)---------------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prf---------------------evaluateFeatureFile(default_pre.prf)-------------------------------------end---------------------evaluateCommand()  (process command input before_State)--------------start end---------------------applyExtraConfigs()---------------------------------------------------start end---------------------visitProBlock(t1.pro)------------------------------------------------start---------------------parse and evaluate codes in t1.pro, and evaluate includeing pri/pro/prf if any-------------start endProject MESSAGE:CONFIG = lex yacc debug exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin windows file_copies qmake_use qt warn_on release link_prl flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared release no_plugin_manifest win32 msvc copy_dir_files c++11 win32-msvc2015 debug qml_debug c++11 console---------------------visitProBlock(t1.pro)-----------------------------end---------------------evaluateCommand()  (process command input after_State)--------------start end---------------------applyExtraConfigs()--------------------------------------------------start end---------------------evaluateFeatureFile(default_post.prf)-------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prf---------------------evaluateFeatureFile(default_post.prf)-------end---------------------evaluateCommand()  (process command input late_State)--------------start end---------------------evaluateConfigFeatures()(process CONFIG feature files,will make the file name,and find the file in the dir have been used in upper process)--------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/console.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/console.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qml_debug.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qml_debug.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/precompile_header.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/precompile_header.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/warn_on.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/warn_on.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resources.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resources.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/moc.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/moc.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/opengl.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/opengl.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/uic.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/uic.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qmake_use.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qmake_use.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/file_copies.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/file_copies.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/testcase_targets.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/testcase_targets.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exceptions.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exceptions.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/yacc.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/yacc.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/lex.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/lex.prf---------------------evaluateConfigFeatures()--------------------endDEBUG 0: done evaluateing file E:/test/t1.pro---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------end---------------------QMakeEvaluator::evaluateFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------end---------------------QMakeProject::read(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)----------end---------------------MetaMakefileGenerator::createMetaGenerator()----------------------start   generate makefiles and vs.proj and so on---------------------BuildsMetaMakefileGenerator::BuildsMetaMakefileGenerator()--------------------------------start end---------------------BuildsMetaMakefileGenerator::init()------------------------start---------------------BuildsMetaMakefileGenerator::processBuild(debug)----------------start   generate Makefile.DEBUG---------------------QMakeProject::read()------------------------------------------start---------------------QMakeEvaluator::evaluateFile(t1.pro)------------------------------startDEBUG 0: evaluateing file E:/test/t1.pro---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------start---------------------evaluateCommand()  (process command input early_State  )------------------------start end---------------------applyExtraConfigs()-------------------------------------------------------------start end---------------------evaluateFeatureFile(default_pre.prf)------------------------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prf---------------------evaluateFeatureFile(default_pre.prf)-------------------------------------------------end---------------------evaluateCommand()  (process command input before_State)-------------------------start end---------------------applyExtraConfigs()----------------------------------------------------------------start end---------------------visitProBlock(t1.pro)-------------------------------------------------------------start---------------------parse and evaluate codes in t1.pro, and evaluate includeing pri/pro/prf if any-------------start endProject MESSAGE:CONFIG = lex yacc debug exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin windows file_copies qmake_use qt warn_on release link_prl flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared release no_plugin_manifest win32 msvc copy_dir_files debug DebugBuild Debug build_pass c++11 win32-msvc2015 debug qml_debug debug DebugBuild Debug build_pass c++11 console---------------------visitProBlock(t1.pro)-----------------------------end---------------------evaluateCommand()  (process command input after_State)--------------------------start end---------------------applyExtraConfigs()--------------------------------------------------------------start end---------------------evaluateFeatureFile(default_post.prf)----------------------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prf---------------------evaluateFeatureFile(default_post.prf)--------------------------------------------end---------------------evaluateCommand()  (process command input late_State)--------------------------start end---------------------evaluateConfigFeatures()(process CONFIG feature files,will make the file name,and find the file in the dir have been used in upper process)--------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/build_pass.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/build_pass.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/console.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/console.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qml_debug.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qml_debug.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/precompile_header.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/precompile_header.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/warn_on.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/warn_on.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resources.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resources.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/moc.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/moc.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/opengl.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/opengl.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/uic.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/uic.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qmake_use.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qmake_use.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/file_copies.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/file_copies.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/testcase_targets.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/testcase_targets.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exceptions.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exceptions.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/yacc.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/yacc.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/lex.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/lex.prf---------------------evaluateConfigFeatures()--------------------endDEBUG 0: done evaluateing file E:/test/t1.pro---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------end---------------------QMakeEvaluator::evaluateFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------end---------------------QMakeProject::read()------------------------------------------end---------------------MetaMakefileGenerator::createMakefileGenerator(QMakeProject *proj, bool noIO)------start---------------------NmakeMakefileGenerator::NmakeMakefileGenerator()-----------------------------start end---------------------MakefileGenerator::setProjectFile()--------------------------------------start---------------------NmakeMakefileGenerator::init()-------------------------------------------start---------------------MakefileGenerator::init()------------------------------------------------start end---------------------NmakeMakefileGenerator::init()-------------------------------------------end---------------------Win32MakefileGenerator::findLibraries()----------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Widgetsd.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Widgetsd.prlDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Guid.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Guid.prlDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Networkd.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Networkd.prlDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Cored.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Cored.prl---------------------Win32MakefileGenerator::findLibraries()----------------------------------end---------------------MakefileGenerator::setProjectFile()--------------------------------------end---------------------MetaMakefileGenerator::createMakefileGenerator(QMakeProject *proj, bool noIO)------end---------------------BuildsMetaMakefileGenerator::processBuild(debug)----------------end---------------------BuildsMetaMakefileGenerator::processBuild(release)----------------start---------------------QMakeProject::read()------------------------------------------start---------------------QMakeEvaluator::evaluateFile(t1.pro)------------------------------startDEBUG 0: evaluateing file E:/test/t1.pro---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------start---------------------evaluateCommand()  (process command input early_State  )--------------  start end---------------------applyExtraConfigs()-------------------------------------------start end---------------------evaluateFeatureFile(default_pre.prf)--------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prf---------------------evaluateFeatureFile(default_pre.prf)-------------------------------end---------------------evaluateCommand()  (process command input before_State)--------------start end---------------------applyExtraConfigs()--------------start end---------------------visitProBlock(t1.pro)-----------------------------startProject MESSAGE: lex yacc debug exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin windows file_copies qmake_use qt warn_on release link_prl flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared release no_plugin_manifest win32 msvc copy_dir_files release ReleaseBuild Release build_pass c++11 win32-msvc2015 debug qml_debug release ReleaseBuild Release build_pass c++11 console---------------------visitProBlock(t1.pro)-----------------------------end---------------------evaluateCommand()  (process command input after_State)--------------start end---------------------applyExtraConfigs()----------------------------------------------------start end---------------------evaluateFeatureFile(default_post.prf)-------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prf---------------------evaluateFeatureFile(default_post.prf)-------end---------------------evaluateCommand()  (process command input late_State)-------------- start end---------------------evaluateConfigFeatures()(process CONFIG feature files,will make the file name,and find the file in the dir have been used in upper process)--------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/build_pass.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/build_pass.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/console.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/console.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qml_debug.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qml_debug.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/precompile_header.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/precompile_header.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/warn_on.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/warn_on.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qt.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resources.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resources.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/moc.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/moc.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/opengl.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/opengl.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/uic.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/uic.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qmake_use.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/qmake_use.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/file_copies.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/file_copies.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/testcase_targets.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/testcase_targets.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exceptions.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exceptions.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/yacc.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/yacc.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/lex.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/lex.prf---------------------evaluateConfigFeatures()--------------------endDEBUG 0: done evaluateing file E:/test/t1.pro---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------end---------------------QMakeEvaluator::evaluateFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------end---------------------QMakeProject::read()------------------------------------------end---------------------MetaMakefileGenerator::createMakefileGenerator(QMakeProject *proj, bool noIO)------start---------------------NmakeMakefileGenerator::NmakeMakefileGenerator()-----------------------------start end---------------------MakefileGenerator::setProjectFile()--------------------------------------start---------------------NmakeMakefileGenerator::init()-------------------------------------------start---------------------MakefileGenerator::init()------------------------------------------------start end---------------------NmakeMakefileGenerator::init()-------------------------------------------end---------------------Win32MakefileGenerator::findLibraries()----------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Widgets.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Widgets.prlDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Gui.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Gui.prlDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Network.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Network.prlDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Core.prlDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Core.prl---------------------Win32MakefileGenerator::findLibraries()----------------------------------end---------------------MakefileGenerator::setProjectFile()--------------------------------------end---------------------MetaMakefileGenerator::createMakefileGenerator(QMakeProject *proj, bool noIO)------end---------------------BuildsMetaMakefileGenerator::processBuild(release)----------------end---------------------BuildsMetaMakefileGenerator::init()------------------------end---------------------MetaMakefileGenerator::createMetaGenerator()----------------------end---------------------BuildsMetaMakefileGenerator::write()------将解析的内容写入makefile文件---start end
---------------------runQMake(int argc, char **argv)---------------------------------------------------end

关于spec的值,参数中没有设置会进入环境变量中查找QMAKESPEC和XQMAKESPEC变量,环境变量中没找到会到属性中查找QMAKE_SPEC和QMAKE_XSPEC变量。
如果缓存文件.qmake.conf .qmake.cache .qmake.stash中存在QMAKESPEC和XQMAEKSPEC,会使用缓存文件中的值。host_build指定创建QMAKE_SPEC的配置的工程 还是QMAKE_XSPEC的配置的工程,默认为false,指定后者。参考:qmake 参数 

工程pro文件的解析所能从中获取变量名的配置文件,及通过命令行输入参数的作用时效(early、before、after、late)如下,(需要注意的是applyExtraConfigs设置的configs是由配置文件自动产生的,命令行设置的config在evaluatecommand的时候设置的):

---------------------QMakeEvaluator::evaluateFile(t1.pro)------------------------------startDEBUG 0: evaluateing file E:/test/t1.pro---------------------QMakeEvaluator::visitProFile(t1.pro,...LoadFlags=LoadPreFiles|LoadPostFiles)------start---------------------evaluateCommand()  (process command input early_State  )------------------------start end---------------------applyExtraConfigs()-------------------------------------------------------------start end---------------------evaluateFeatureFile(default_pre.prf)------------------------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/common/msvc-version.confDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/toolchain.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_pre.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/win32/default_pre.prf---------------------evaluateFeatureFile(default_pre.prf)-------------------------------------------------end---------------------evaluateCommand()  (process command input before_State)-------------------------start end---------------------applyExtraConfigs()----------------------------------------------------------------start end---------------------visitProBlock(t1.pro)  该函数解析t1.pro中的语句。如果有load或者include,则按照调用顺序进入到对应文件中去---start---------------------parse and evaluate codes in t1.pro, and evaluate includeing pri/pro/prf if any-------------start endProject MESSAGE:CONFIG = lex yacc debug exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin windows file_copies qmake_use qt warn_on release link_prl flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared release no_plugin_manifest win32 msvc copy_dir_files debug DebugBuild Debug build_pass c++11 win32-msvc2015 debug qml_debug debug DebugBuild Debug build_pass c++11 console---------------------visitProBlock(t1.pro)-----------------------------end---------------------evaluateCommand()  (process command input after_State)--------------------------start end---------------------applyExtraConfigs()--------------------------------------------------------------start end---------------------evaluateFeatureFile(default_post.prf)----------------------------------------------startDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/resolve_config.prfDEBUG 0: evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/exclusive_builds_post.prfDEBUG 0: done evaluateing file D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/mkspecs/features/default_post.prf---------------------evaluateFeatureFile(default_post.prf)--------------------------------------------end---------------------evaluateCommand()  (process command input late_State)--------------------------start end

qmake解析调用的单个qt模块Qt5Widgets的配置文件D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Widgetsd.prl的堆栈

 D:/Qt/Qt5.12.0/5.12.0/msvc2015_64/lib/Qt5Widgetsd.prl文件内容


QMAKE_PRO_INPUT = widgets.pro
QMAKE_PRL_TARGET = Qt5Widgetsd.lib
QMAKE_PRL_CONFIG = lex yacc debug depend_includepath testcase_targets import_plugins import_qpa_plugin windows qt_build_extra file_copies qmake_use qt warn_on link_prl flat debug_and_release precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 compile_examples f16c force_debug_info largefile precompile_header rdrnd shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl prepare_docs qt_docs_targets no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions warning_clean debug DebugBuild Debug build_pass c++11 win32-msvc2015 uic qt_tracepoints generated_privates relative_qt_rpath git_build qmake_cache target_qt c++11 strict_c++ qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext debug DebugBuild Debug build_pass have_target dll no_plist exclusive_builds debug_info no_autoqmake thread opengl moc resources
QMAKE_PRL_VERSION = 5.12.0

qmake 将解析内容写入makefile时会调用到moc.prf中的函数,发生在write过程中,参考:qtcreator编译qt程序是如何调用moc的,如何通过pro文件向moc传入参数 
qmake 脚本 常用变量

qmake language 关键字 true false host_build option return next break ever forever  
qmake对一个简单的pro文件(t.pro)的解析日志_丘上人的博客-CSDN博客

这篇关于qmake 与 配置文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/463152

相关文章

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

前端-06-eslint9大变样后,如何生成旧版本的.eslintrc.cjs配置文件

目录 问题解决办法 问题 最近在写一个vue3+ts的项目,看了尚硅谷的视频,到了配置eslintrc.cjs的时候我犯了难,因为eslint从9.0之后重大更新,跟以前完全不一样,但是我还是想用和老师一样的eslintrc.cjs文件,该怎么做呢? 视频链接:尚硅谷Vue项目实战硅谷甄选,vue3项目+TypeScript前端项目一套通关 解决办法 首先 eslint 要

Centos9 网卡配置文件

1、Centos stream 9 网络介结 Centos以前版本,NetworkManage以ifcfg格式存储网络配置文件在/etc/sysconfig/networkscripts/目录中。但是,Centos steam 9现已弃用ifcfg格式,默认情况下,NetworkManage不再创建此格式的新配置文件。从Centos steam 9开始采用密钥文件格式(基于INI文件),Netw

【SpringMVC学习03】-SpringMVC的配置文件详解

在SpringMVC的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。其实真正需要程序员开发的就两大块:一个是Handler,一个是jsp。 在springMVC的入门程序中,SpringMVC的核心配置文件——springmvc.xml为: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:

python+selenium2轻量级框架设计-03读取配置文件

任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里介绍读取ini文件。 以读取url和浏览器作为例子 #浏览器引擎类import configparser,time,osfrom selenium import webdriverfrom framework.logger import Loggerlogger = Logger(logger='

linux配置DNS解析设置之配置文件“/etc/resolv.conf “

在 Linux 系统中,/etc/resolv.conf 文件用于配置系统的 DNS 解析设置。它定义了如何将主机名(例如 www.example.com)转换为 IP 地址。主要功能包括: 主要功能 DNS 服务器地址:指定系统用于查询域名的 DNS 服务器。你可以在该文件中列出一个或多个 DNS 服务器的 IP 地址。 示例内容: conf 复制代码 nameserver 8.

centos7 网卡配置文件

1、Centos6与Centos7网络命令对照表 2、网络配置文件解释说明 静态IP配置: cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static DEVICE=eth0 NAME=eth0 ONBOOT=yes IPADDR=192.168.10.250 NETMASK=255

SpringBoot整合Minio及阿里云OSS(配置文件无缝切换)

SpringBoot整合Minio及阿里云OSS 文章目录 SpringBoot整合Minio及阿里云OSS1.Minio安装测试1.Docker安装启动容器 2.创建bucket3.上传文件修改权限 2.SpringBoot整合Minio及阿里云OSS1.公共部分抽取2.Minio配置整合1.添加pom依赖2.添加配置文件3.操作接口实现 3.阿里云OSS配置整合1.pom依赖2.添加

maven打包成可执行的jar,以及读取配置文件问题小结

文章来源 https://blog.csdn.net/chasonsp/article/details/88852353 折腾的几天,使用maven打包后发现了问题,首先是打包的配置文件读取问题,使用getResource().getPah()会发现在访问jar包的文件时,路径里会有感叹号(杠杠滴~~)是这样的 …jar!.. 经过不断的查找资料及反复验证后,终于找到了可行的方法: