diff --git a/qmake/option.cpp b/qmake/option.cpp index b2f5de50b5..b01b4eded5 100644 --- a/qmake/option.cpp +++ b/qmake/option.cpp @@ -556,6 +556,11 @@ bool Option::postProcessProject(QMakeProject *project) Option::lex_mod = project->first("QMAKE_MOD_LEX"); Option::yacc_mod = project->first("QMAKE_MOD_YACC"); Option::dir_sep = project->first("QMAKE_DIR_SEP"); + + if (Option::output_dir.startsWith(project->buildRoot())) + Option::mkfile::cachefile_depth = + Option::output_dir.mid(project->buildRoot().length()).count('/'); + return true; } diff --git a/qmake/project.cpp b/qmake/project.cpp index 928ecc9bce..8b151539fd 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -1333,9 +1333,9 @@ QMakeProject::read(uchar cmd) if (base_vars.isEmpty()) { QString superdir; QString project_root; - QString project_build_root; QStringList qmakepath; QStringList qmakefeatures; + project_build_root.clear(); if (Option::mkfile::do_cache) { // parse the cache QHash cache; QString rdir = Option::output_dir; @@ -1403,10 +1403,6 @@ QMakeProject::read(uchar cmd) qmakepath = cache.value(QLatin1String("QMAKEPATH")); qmakefeatures = cache.value(QLatin1String("QMAKEFEATURES")); - if (Option::output_dir.startsWith(project_build_root)) - Option::mkfile::cachefile_depth = - Option::output_dir.mid(project_build_root.length()).count('/'); - if (!superfile.isEmpty()) vars["_QMAKE_SUPER_CACHE_"] << superfile; if (!cachefile.isEmpty()) diff --git a/qmake/project.h b/qmake/project.h index cf71e5e72c..266053a972 100644 --- a/qmake/project.h +++ b/qmake/project.h @@ -82,6 +82,7 @@ class QMakeProject bool need_restart; bool own_prop; bool backslashWarned; + QString project_build_root; QString conffile; QString superfile; QString cachefile; @@ -136,6 +137,7 @@ public: QStringList userTestFunctions() { return testFunctions.keys(); } QString projectFile(); + QString buildRoot() const { return project_build_root; } QString confFile() const { return conffile; } QString cacheFile() const { return cachefile; } QString specDir() const { return real_spec; }