From 6cc14b9bd84de30471db40f73b119ba33356a6ba Mon Sep 17 00:00:00 2001
From: Keith Isdale <keith.isdale@nokia.com>
Date: Mon, 10 Aug 2009 17:19:20 +1000
Subject: In a .pro file the include() function does not warn if specified file
 can not be found change that behavior to warn by default.

Currently the default behavior of include() in a .pro file is not to
warn if the supplied file argument can not be found which can lead to
hard to find build errors. The include() will now,by default, warn if
the specified file can not be found.

If a warning is not required because the included file is optional then
example use in the .pro file:
     include(SomePriFile.pri", "", true)

Task-number:259398
Reviewed-by:Marius Storm-Olsen
---
 mkspecs/features/qt_config.prf                       |  2 +-
 qmake/project.cpp                                    | 13 +++++++++----
 src/3rdparty/webkit/WebCore/WebCore.pro              |  2 +-
 src/corelib/arch/arch.pri                            |  2 +-
 src/qbase.pri                                        |  2 +-
 src/xmlpatterns/query.pri                            |  2 +-
 src/xmlpatterns/xmlpatterns.pro                      |  2 +-
 tests/auto/qaccessibility_mac/qaccessibility_mac.pro |  2 +-
 tests/auto/qmake/testdata/functions/functions.pro    |  2 +-
 tools/assistant/compat/lib/lib.pro                   |  2 +-
 tools/designer/src/components/lib/lib.pro            |  2 +-
 tools/designer/src/lib/lib.pro                       |  2 +-
 tools/designer/src/uitools/uitools.pro               |  2 +-
 13 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf
index 779c2e5..0a2d985 100644
--- a/mkspecs/features/qt_config.prf
+++ b/mkspecs/features/qt_config.prf
@@ -4,7 +4,7 @@ isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) {
    else:exists($$_QMAKE_CACHE_):infile($$_QMAKE_CACHE_, QT_BUILD_TREE):QMAKE_QT_CONFIG = $$fromfile($$_QMAKE_CACHE_, QT_BUILD_TREE)/mkspecs/qconfig.pri
    else:exists($$[QT_INSTALL_DATA]/mkspecs/qconfig.pri):QMAKE_QT_CONFIG = $$[QT_INSTALL_DATA]/mkspecs/qconfig.pri
 }
-!exists($$QMAKE_QT_CONFIG)|!include($$QMAKE_QT_CONFIG) {
+!exists($$QMAKE_QT_CONFIG)|!include($$QMAKE_QT_CONFIG, "", true) {
    debug(1, "Cannot load qconfig.pri!")
 } else {
    debug(1, "Loaded .qconfig.pri from ($$QMAKE_QT_CONFIG)")
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 4fefbab..6687e9a 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -2693,10 +2693,15 @@ QMakeProject::doProjectTest(QString func, QList<QStringList> args_list, QMap<QSt
     case T_LOAD: {
         QString parseInto;
         const bool include_statement = (func_t == T_INCLUDE);
-        bool ignore_error = include_statement;
-        if(args.count() == 2) {
+        bool ignore_error = false;
+        if(args.count() >= 2) {
             if(func_t == T_INCLUDE) {
                 parseInto = args[1];
+                if (args.count() == 3){
+                    QString sarg = args[2];
+                    if (sarg.toLower() == "true" || sarg.toInt())
+                        ignore_error = true;
+                }
             } else {
                 QString sarg = args[1];
                 ignore_error = (sarg.toLower() == "true" || sarg.toInt());
@@ -2738,8 +2743,8 @@ QMakeProject::doProjectTest(QString func, QList<QStringList> args_list, QMap<QSt
         if(stat == IncludeFeatureAlreadyLoaded) {
             warn_msg(WarnParser, "%s:%d: Duplicate of loaded feature %s",
                      parser.file.toLatin1().constData(), parser.line_no, file.toLatin1().constData());
-        } else if(stat == IncludeNoExist && include_statement) {
-            warn_msg(WarnParser, "%s:%d: Unable to find file for inclusion %s",
+        } else if(stat == IncludeNoExist && !ignore_error) {
+            warn_msg(WarnAll, "%s:%d: Unable to find file for inclusion %s",
                      parser.file.toLatin1().constData(), parser.line_no, file.toLatin1().constData());
             return false;
         } else if(stat >= IncludeFailure) {
diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
index e49ab13..2eb7c08 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
@@ -3159,7 +3159,7 @@ xpathbison.dependency_type = TYPE_C
 xpathbison.variable_out = GENERATED_SOURCES
 addExtraCompilerWithHeader(xpathbison)
 
-include($$PWD/../WebKit/qt/Api/headers.pri)
+include($$PWD/../WebKit/qt/Api/headers.pri, "", true)
 HEADERS += $$WEBKIT_API_HEADERS
 !CONFIG(QTDIR_build) {
     target.path = $$[QT_INSTALL_LIBS]
diff --git a/src/corelib/arch/arch.pri b/src/corelib/arch/arch.pri
index dd3141a..18f54ee 100644
--- a/src/corelib/arch/arch.pri
+++ b/src/corelib/arch/arch.pri
@@ -25,4 +25,4 @@ vxworks:HEADERS += arch/qatomic_vxworks.h
 
 QT_ARCH_CPP = $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH
 DEPENDPATH += $$QT_ARCH_CPP
-include($$QT_ARCH_CPP/arch.pri)
+include($$QT_ARCH_CPP/arch.pri, "", true)
diff --git a/src/qbase.pri b/src/qbase.pri
index 0ab04e6..9e2d26f 100644
--- a/src/qbase.pri
+++ b/src/qbase.pri
@@ -13,7 +13,7 @@ mac:!contains(QMAKE_EXT_C, .mm):QMAKE_EXT_C += .mm
 #load up the headers info
 CONFIG += qt_install_headers
 HEADERS_PRI = $$QT_BUILD_TREE/include/$$TARGET/headers.pri
-include($$HEADERS_PRI)|clear(HEADERS_PRI)
+include($$HEADERS_PRI, "", true)|clear(HEADERS_PRI)
 
 #version overriding
 win32 {
diff --git a/src/xmlpatterns/query.pri b/src/xmlpatterns/query.pri
index e09a618..fab1940 100644
--- a/src/xmlpatterns/query.pri
+++ b/src/xmlpatterns/query.pri
@@ -11,4 +11,4 @@ include($$PWD/parser/parser.pri)
 include($$PWD/projection/projection.pri)
 include($$PWD/type/type.pri)
 include($$PWD/utils/utils.pri)
-include($$PWD/qobjectmodel/qobjectmodel.pri)
+include($$PWD/qobjectmodel/qobjectmodel.pri, "", true)
diff --git a/src/xmlpatterns/xmlpatterns.pro b/src/xmlpatterns/xmlpatterns.pro
index fb6aa1a..0e6270e 100644
--- a/src/xmlpatterns/xmlpatterns.pro
+++ b/src/xmlpatterns/xmlpatterns.pro
@@ -25,7 +25,7 @@ include($$PWD/schema/schema.pri)
 include($$PWD/schematron/schematron.pri)
 include($$PWD/type/type.pri)
 include($$PWD/utils/utils.pri)
-include($$PWD/qobjectmodel/qobjectmodel.pri)
+include($$PWD/qobjectmodel/qobjectmodel.pri, "", true)
 
 wince*: {
    # The Microsoft MIPS compiler crashes if /Og is specified
diff --git a/tests/auto/qaccessibility_mac/qaccessibility_mac.pro b/tests/auto/qaccessibility_mac/qaccessibility_mac.pro
index b32a7e5..47f72d1 100644
--- a/tests/auto/qaccessibility_mac/qaccessibility_mac.pro
+++ b/tests/auto/qaccessibility_mac/qaccessibility_mac.pro
@@ -11,7 +11,7 @@ requires(mac)
 # builds (where QTDIR points to the build directory).
 # autotest + shadow build is not supported :)
 exists($$(QTDIR)/tools/designer/src/lib/uilib/uilib.pri) {
-   include($$(QTDIR)/tools/designer/src/lib/uilib/uilib.pri)
+   include($$(QTDIR)/tools/designer/src/lib/uilib/uilib.pri, "", true)
    INCLUDEPATH += $$(QTDIR)/tools/designer/src/uitools
    SOURCES += $$(QTDIR)/tools/designer/src/uitools/quiloader.cpp
    HEADERS += $$(QTDIR)/tools/designer/src/uitools/quiloader.h
diff --git a/tests/auto/qmake/testdata/functions/functions.pro b/tests/auto/qmake/testdata/functions/functions.pro
index 9ed92f96..5e089e4 100644
--- a/tests/auto/qmake/testdata/functions/functions.pro
+++ b/tests/auto/qmake/testdata/functions/functions.pro
@@ -46,7 +46,7 @@ isEmpty( CONFIG ) {
 }
 
 #include
-include( infiletest.pro )
+include( infiletest.pro, "", true ) 
 !contains( DEFINES, QT_DLL ) {
    message( "FAILED: include function: $$DEFINES" )
 }
diff --git a/tools/assistant/compat/lib/lib.pro b/tools/assistant/compat/lib/lib.pro
index d4b5a47..e50d470 100644
--- a/tools/assistant/compat/lib/lib.pro
+++ b/tools/assistant/compat/lib/lib.pro
@@ -32,7 +32,7 @@ contains(CONFIG, static) {
 #load up the headers info
 CONFIG += qt_install_headers
 HEADERS_PRI = $$QT_BUILD_TREE/include/QtAssistant/headers.pri
-include($$HEADERS_PRI)|clear(HEADERS_PRI)
+include($$HEADERS_PRI, "", true)|clear(HEADERS_PRI)
 
 #mac frameworks
 mac:!static:contains(QT_CONFIG, qt_framework) {
diff --git a/tools/designer/src/components/lib/lib.pro b/tools/designer/src/components/lib/lib.pro
index 4515b66..92cf387 100644
--- a/tools/designer/src/components/lib/lib.pro
+++ b/tools/designer/src/components/lib/lib.pro
@@ -24,7 +24,7 @@ QMAKE_TARGET_DESCRIPTION = Graphical user interface designer.
 #load up the headers info
 CONFIG += qt_install_headers
 HEADERS_PRI = $$QT_BUILD_TREE/include/QtDesigner/headers.pri
-include($$HEADERS_PRI)|clear(HEADERS_PRI)
+include($$HEADERS_PRI, "", true)|clear(HEADERS_PRI)
 
 #mac frameworks
 mac:!static:contains(QT_CONFIG, qt_framework) {
diff --git a/tools/designer/src/lib/lib.pro b/tools/designer/src/lib/lib.pro
index e0f2f23..495976d 100644
--- a/tools/designer/src/lib/lib.pro
+++ b/tools/designer/src/lib/lib.pro
@@ -34,7 +34,7 @@ QMAKE_TARGET_DESCRIPTION = Graphical user interface designer.
 #load up the headers info
 CONFIG += qt_install_headers
 HEADERS_PRI = $$QT_BUILD_TREE/include/QtDesigner/headers.pri
-include($$HEADERS_PRI)|clear(HEADERS_PRI)
+include($$HEADERS_PRI, "", true)|clear(HEADERS_PRI)
 
 #mac frameworks
 mac:CONFIG += explicitlib
diff --git a/tools/designer/src/uitools/uitools.pro b/tools/designer/src/uitools/uitools.pro
index a20abf0..34e4877 100644
--- a/tools/designer/src/uitools/uitools.pro
+++ b/tools/designer/src/uitools/uitools.pro
@@ -22,7 +22,7 @@ include(../lib/uilib/uilib.pri)
 HEADERS += quiloader.h
 SOURCES += quiloader.cpp
 
-include($$QT_BUILD_TREE/include/QtUiTools/headers.pri)
+include($$QT_BUILD_TREE/include/QtUiTools/headers.pri, "", true)
 quitools_headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
 quitools_headers.path = $$[QT_INSTALL_HEADERS]/QtUiTools
 INSTALLS        += quitools_headers
-- 
cgit v0.12