diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-05-18 16:59:22 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-06-19 16:46:05 +0200 |
commit | 2bbd50c6e4b33b342f4d69c587c07afc964a9cb2 (patch) | |
tree | ad37a88ff04abea2d3d8719fcd4446b4cd4b4b6f /qmake | |
parent | 76ed07168d059c16c6610a83be52dbb7a8ea3b28 (diff) |
make 'qmake_all' target of SUBDIRS projects properly recursive
so far it would rebuild the makefiles one level down only, which is
somewhat arbitrary and not really helpful.
Change-Id: I5fe01f379ecc4b210610a674d7df7dfc18131eef
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'qmake')
-rw-r--r-- | qmake/generators/makefile.cpp | 26 | ||||
-rw-r--r-- | qmake/generators/makefile.h | 2 |
2 files changed, 21 insertions, 7 deletions
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 2b63a14906..131bbb5303 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -2413,6 +2413,8 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT << QString((flags & SubTargetInstalls) ? "uninstall_subtargets" : "uninstall"); } + bool dont_recurse = project->isActiveConfig("dont_recurse"); + // generate target rules for(int target = 0; target < targets.size(); ++target) { SubTarget *subtarget = targets.at(target); @@ -2453,6 +2455,8 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT MAKE_CD_IN_AND_OUT(in_directory); MAKE_CD_IN_AND_OUT(out_directory); + QString makefilein = " -f " + subtarget->makefile; + //qmake it if(!subtarget->profile.isEmpty()) { QString out = subtarget->makefile; @@ -2476,14 +2480,16 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT t << mkdir_p_asstring(out_directory) << out_directory_cdin << "$(QMAKE) " << in << buildArgs(in_directory) << " -o " << out - << in_directory_cdout << endl; + << in_directory_cdout; } else { - t << "$(QMAKE) " << in << buildArgs(in_directory) << " -o " << out << endl; + t << "$(QMAKE) " << in << buildArgs(in_directory) << " -o " << out; } + if (!dont_recurse) + writeSubMakeCall(t, out_directory_cdin, makefilein + " qmake_all", out_directory_cdout); + else + t << endl; } - QString makefilein = " -f " + subtarget->makefile; - { //actually compile t << subtarget->target << ": " << mkfile; if(!subtarget->depends.isEmpty()) @@ -2522,7 +2528,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT t << endl; if (!(flags & SubTargetSkipDefaultTargets)) { - writeMakeQmake(t); + writeMakeQmake(t, true); t << "qmake_all:"; if(!targets.isEmpty()) { @@ -2674,7 +2680,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT } void -MakefileGenerator::writeMakeQmake(QTextStream &t) +MakefileGenerator::writeMakeQmake(QTextStream &t, bool noDummyQmakeAll) { QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName())); if(project->isEmpty("QMAKE_FAILED_REQUIREMENTS") && !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) { @@ -2712,6 +2718,14 @@ MakefileGenerator::writeMakeQmake(QTextStream &t) if(project->isEmpty("QMAKE_NOFORCE")) t << " FORCE"; t << "\n\t" << "@" << qmake << endl << endl; + if (!noDummyQmakeAll) { + t << "qmake_all:"; + if (project->isEmpty("QMAKE_NOFORCE")) + t << " FORCE"; + if (project->isActiveConfig("no_empty_targets")) + t << "\n\t" << "@cd ."; + t << endl << endl; + } } } } diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h index a4ec259bb0..64ed2dd30a 100644 --- a/qmake/generators/makefile.h +++ b/qmake/generators/makefile.h @@ -97,7 +97,7 @@ protected: void writeInstalls(QTextStream &t, const QString &installs, bool noBuild=false); void writeHeader(QTextStream &t); void writeSubDirs(QTextStream &t); - void writeMakeQmake(QTextStream &t); + void writeMakeQmake(QTextStream &t, bool noDummyQmakeAll = false); void writeExtraVariables(QTextStream &t); void writeExtraTargets(QTextStream &t); void writeExtraCompilerTargets(QTextStream &t); |