diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc index c14615fdc5f..d772ba5fc18 100644 --- a/qmake/doc/src/qmake-manual.qdoc +++ b/qmake/doc/src/qmake-manual.qdoc @@ -1248,6 +1248,9 @@ subproject. \row \li no_include_pwd \li Do not add the current directory to INCLUDEPATHS. + \row \li compile_included_sources \li By default, qmake does not + compile source files that are included in other source files. This + option disables this behavior. \endtable When you use the \c debug_and_release option (which is the default under diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 1f60f292152..41525c5778b 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -943,6 +943,15 @@ MakefileGenerator::filterIncludedFiles(const char *var) inputs.removeIf(isIncluded); } +void MakefileGenerator::processSources() +{ + if (project->isActiveConfig("compile_included_sources")) + return; + + filterIncludedFiles("SOURCES"); + filterIncludedFiles("GENERATED_SOURCES"); +} + static QString qv(const ProString &val) { diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h index 91016ff34d5..720599fd967 100644 --- a/qmake/generators/makefile.h +++ b/qmake/generators/makefile.h @@ -201,10 +201,7 @@ protected: virtual bool doDepends() const { return Option::mkfile::do_deps; } void filterIncludedFiles(const char *); - void processSources() { - filterIncludedFiles("SOURCES"); - filterIncludedFiles("GENERATED_SOURCES"); - } + void processSources(); //for installs virtual QString defaultInstall(const QString &);