Don't scan system includes for dependencies and don't list them
Assume that C and C++ headers found in system paths will not change,
so we don't need to tell Make about them, nor do we need to scan their
contents either.
The previous qmake behavior matched gcc's -M switch; it now matches
the -MM switch:
-M Instead of outputting the result of preprocessing, output a
rule suitable for make describing the dependencies of the
main source file.
-MM Like -M but do not mention header files that are found in
system header directories, nor header files that are
included, directly or indirectly, from such a header.
This goes hand-in-hand with our use of -isystem to pass system paths
to the compiler.
Change-Id: I3346b6da496fe6495ac89c5286d066b343116f0e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
bb10
parent
0b144bc76a
commit
08841c1c2f
|
|
@ -679,7 +679,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
|
|||
} else {
|
||||
exists = QFile::exists(lfn.real());
|
||||
}
|
||||
if(!lfn.isNull()) {
|
||||
if (!lfn.isNull() && !isSystemInclude(lfn.real())) {
|
||||
dep = files->lookupFile(lfn);
|
||||
if(!dep) {
|
||||
dep = new SourceFile;
|
||||
|
|
|
|||
|
|
@ -1229,8 +1229,10 @@ void UnixMakefileGenerator::init2()
|
|||
}
|
||||
|
||||
if (include_deps && project->isActiveConfig("gcc_MD_depends")) {
|
||||
project->values("QMAKE_CFLAGS") += "-MD";
|
||||
project->values("QMAKE_CXXFLAGS") += "-MD";
|
||||
// use -MMD if we know about -isystem too
|
||||
ProString MD_flag(project->values("QMAKE_CFLAGS_ISYSTEM").isEmpty() ? "-MD" : "-MMD");
|
||||
project->values("QMAKE_CFLAGS") += MD_flag;
|
||||
project->values("QMAKE_CXXFLAGS") += MD_flag;
|
||||
}
|
||||
|
||||
if(!project->isEmpty("QMAKE_BUNDLE")) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue