summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/configure/configureapp.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 139c76bbf1..dfd90ee97f 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2062,6 +2062,9 @@ bool Configure::checkAvailability(const QString &part)
else if (part == "ATOMIC64-LIBATOMIC")
available = tryCompileProject("common/atomic64", "LIBS+=-latomic");
+ else if (part == "ATOMICFPTR")
+ available = tryCompileProject("common/atomicfptr");
+
else if (part == "SYSTEM_ZLIB")
available = findFile("zlib.h");
@@ -2210,6 +2213,15 @@ void Configure::autoDetection()
dictionary["ATOMIC64"] = checkAvailability("ATOMIC64") ? "yes" :
checkAvailability("ATOMIC64-LIBATOMIC") ? "libatomic" : "no";
+ // special case:
+ if (!checkAvailability("ATOMICFPTR")) {
+ dictionary["DONE"] = "error";
+ cout << "ERROR: detected an std::atomic implementation that fails for function pointers." << endl
+ << "Please apply the patch corresponding to your Standard Library vendor, found in" << endl
+ << sourcePath << "/config.tests/common/atomicfptr" << endl;
+ return;
+ }
+
// Style detection
if (dictionary["STYLE_WINDOWSXP"] == "auto")
dictionary["STYLE_WINDOWSXP"] = checkAvailability("STYLE_WINDOWSXP") ? defaultTo("STYLE_WINDOWSXP") : "no";
@@ -2732,7 +2744,7 @@ void Configure::generateOutputVars()
qtConfig += "accessibility";
if (!qmakeLibs.isEmpty())
- qmakeVars += "LIBS += " + formatPaths(qmakeLibs);
+ qmakeVars += "EXTRA_LIBS += " + formatPaths(qmakeLibs);
if (!dictionary["QMAKE_LIBS_SQLITE"].isEmpty())
qmakeVars += "QMAKE_LIBS_SQLITE += " + dictionary["QMAKE_LIBS_SQLITE"];
@@ -2844,9 +2856,9 @@ void Configure::generateOutputVars()
qtConfig += "rpath";
if (!qmakeDefines.isEmpty())
- qmakeVars += QString("DEFINES += ") + qmakeDefines.join(' ');
+ qmakeVars += QString("EXTRA_DEFINES += ") + qmakeDefines.join(' ');
if (!qmakeIncludes.isEmpty())
- qmakeVars += QString("INCLUDEPATH += ") + formatPaths(qmakeIncludes);
+ qmakeVars += QString("EXTRA_INCLUDEPATH += ") + formatPaths(qmakeIncludes);
if (!opensslLibs.isEmpty())
qmakeVars += opensslLibs;
if (dictionary[ "OPENSSL" ] == "linked") {