don't pass qmake configure arguments to sub-projects
the arguments after '--' are by definition meant only for the top-level project, as that's where configure is invoked from. passing them to sub-projects just adds noise to the make output and misleads users. note that this specifically does not support qmake -r, which will break if the subprojects rely on the arguments being absent. this isn't a problem, because the qt build doesn't support qmake -r anyway. Change-Id: I7ecff6212ce3137526005fc324a4a7ae45e3345e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
52d64fca66
commit
34cc41d8a1
@ -2254,12 +2254,17 @@ MakefileGenerator::writeDefaultVariables(QTextStream &t)
|
|||||||
t << "MOVE = " << var("QMAKE_MOVE") << endl;
|
t << "MOVE = " << var("QMAKE_MOVE") << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MakefileGenerator::buildArgs()
|
QString MakefileGenerator::buildArgs(bool withExtra)
|
||||||
{
|
{
|
||||||
QString ret;
|
QString ret;
|
||||||
|
|
||||||
for (const QString &arg : qAsConst(Option::globals->qmake_args))
|
for (const QString &arg : qAsConst(Option::globals->qmake_args))
|
||||||
ret += " " + shellQuote(arg);
|
ret += " " + shellQuote(arg);
|
||||||
|
if (withExtra && !Option::globals->qmake_extra_args.isEmpty()) {
|
||||||
|
ret += " --";
|
||||||
|
for (const QString &arg : qAsConst(Option::globals->qmake_extra_args))
|
||||||
|
ret += " " + shellQuote(arg);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2278,7 +2283,7 @@ QString MakefileGenerator::build_args()
|
|||||||
ret += " " + escapeFilePath(fileFixify(project->projectFile()));
|
ret += " " + escapeFilePath(fileFixify(project->projectFile()));
|
||||||
|
|
||||||
// general options and arguments
|
// general options and arguments
|
||||||
ret += buildArgs();
|
ret += buildArgs(true);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2442,7 +2447,7 @@ MakefileGenerator::writeSubTargetCall(QTextStream &t,
|
|||||||
if (!in_directory.isEmpty())
|
if (!in_directory.isEmpty())
|
||||||
t << "\n\t" << mkdir_p_asstring(out_directory);
|
t << "\n\t" << mkdir_p_asstring(out_directory);
|
||||||
pfx = "( " + chkexists.arg(out) +
|
pfx = "( " + chkexists.arg(out) +
|
||||||
+ " $(QMAKE) -o " + out + ' ' + in + buildArgs()
|
+ " $(QMAKE) -o " + out + ' ' + in + buildArgs(false)
|
||||||
+ " ) && ";
|
+ " ) && ";
|
||||||
}
|
}
|
||||||
writeSubMakeCall(t, out_directory_cdin + pfx, makefilein);
|
writeSubMakeCall(t, out_directory_cdin + pfx, makefilein);
|
||||||
@ -2513,7 +2518,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
|
|||||||
t << mkdir_p_asstring(out_directory)
|
t << mkdir_p_asstring(out_directory)
|
||||||
<< out_directory_cdin;
|
<< out_directory_cdin;
|
||||||
}
|
}
|
||||||
t << "$(QMAKE) -o " << out << ' ' << in << buildArgs();
|
t << "$(QMAKE) -o " << out << ' ' << in << buildArgs(false);
|
||||||
if (!dont_recurse)
|
if (!dont_recurse)
|
||||||
writeSubMakeCall(t, out_directory_cdin, makefilein + " qmake_all");
|
writeSubMakeCall(t, out_directory_cdin, makefilein + " qmake_all");
|
||||||
else
|
else
|
||||||
@ -2710,7 +2715,7 @@ MakefileGenerator::writeMakeQmake(QTextStream &t, bool noDummyQmakeAll)
|
|||||||
if(project->isEmpty("QMAKE_FAILED_REQUIREMENTS") && !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) {
|
if(project->isEmpty("QMAKE_FAILED_REQUIREMENTS") && !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) {
|
||||||
QStringList files = escapeFilePaths(fileFixify(Option::mkfile::project_files));
|
QStringList files = escapeFilePaths(fileFixify(Option::mkfile::project_files));
|
||||||
t << escapeDependencyPath(project->first("QMAKE_INTERNAL_PRL_FILE").toQString()) << ": \n\t"
|
t << escapeDependencyPath(project->first("QMAKE_INTERNAL_PRL_FILE").toQString()) << ": \n\t"
|
||||||
<< "@$(QMAKE) -prl " << files.join(' ') << ' ' << buildArgs() << endl;
|
<< "@$(QMAKE) -prl " << files.join(' ') << ' ' << buildArgs(true) << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString qmake = build_args();
|
QString qmake = build_args();
|
||||||
|
@ -178,7 +178,7 @@ protected:
|
|||||||
QString specdir();
|
QString specdir();
|
||||||
|
|
||||||
//subclasses can use these to query information about how the generator was "run"
|
//subclasses can use these to query information about how the generator was "run"
|
||||||
QString buildArgs();
|
QString buildArgs(bool withExtra);
|
||||||
|
|
||||||
virtual QStringList &findDependencies(const QString &file);
|
virtual QStringList &findDependencies(const QString &file);
|
||||||
virtual bool doDepends() const { return Option::mkfile::do_deps; }
|
virtual bool doDepends() const { return Option::mkfile::do_deps; }
|
||||||
|
@ -731,7 +731,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
|||||||
}
|
}
|
||||||
if(!meta_files.isEmpty())
|
if(!meta_files.isEmpty())
|
||||||
t << escapeDependencyPaths(meta_files).join(" ") << ": \n\t"
|
t << escapeDependencyPaths(meta_files).join(" ") << ": \n\t"
|
||||||
<< "@$(QMAKE) -prl " << escapeFilePath(project->projectFile()) << ' ' << buildArgs() << endl;
|
<< "@$(QMAKE) -prl " << escapeFilePath(project->projectFile()) << ' ' << buildArgs(true) << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!project->isEmpty("QMAKE_BUNDLE")) {
|
if (!project->isEmpty("QMAKE_BUNDLE")) {
|
||||||
|
@ -138,7 +138,7 @@ QMakeGlobals::ArgumentReturn QMakeGlobals::addCommandLineArguments(
|
|||||||
if (arg.startsWith(QLatin1Char('-'))) {
|
if (arg.startsWith(QLatin1Char('-'))) {
|
||||||
if (arg == QLatin1String("--")) {
|
if (arg == QLatin1String("--")) {
|
||||||
state.extraargs = args.mid(*pos + 1);
|
state.extraargs = args.mid(*pos + 1);
|
||||||
*pos = args.size();
|
args.erase(args.begin() + *pos, args.end());
|
||||||
return ArgumentsOk;
|
return ArgumentsOk;
|
||||||
}
|
}
|
||||||
if (arg == QLatin1String("-after"))
|
if (arg == QLatin1String("-after"))
|
||||||
|
@ -105,7 +105,7 @@ public:
|
|||||||
QProcessEnvironment environment;
|
QProcessEnvironment environment;
|
||||||
#endif
|
#endif
|
||||||
QString qmake_abslocation;
|
QString qmake_abslocation;
|
||||||
QStringList qmake_args;
|
QStringList qmake_args, qmake_extra_args;
|
||||||
|
|
||||||
QString qtconf;
|
QString qtconf;
|
||||||
QString qmakespec, xqmakespec;
|
QString qmakespec, xqmakespec;
|
||||||
|
@ -427,6 +427,7 @@ Option::init(int argc, char **argv)
|
|||||||
//return ret == QMAKE_CMDLINE_SHOW_USAGE ? usage(argv[0]) : false;
|
//return ret == QMAKE_CMDLINE_SHOW_USAGE ? usage(argv[0]) : false;
|
||||||
}
|
}
|
||||||
globals->qmake_args = args;
|
globals->qmake_args = args;
|
||||||
|
globals->qmake_extra_args = cmdstate.extraargs;
|
||||||
}
|
}
|
||||||
globals->commitCommandLineArguments(cmdstate);
|
globals->commitCommandLineArguments(cmdstate);
|
||||||
globals->debugLevel = Option::debug_level;
|
globals->debugLevel = Option::debug_level;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user