diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin1/plugin1.pro b/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin1/plugin1.pro
index 4181188287f4d0f214df617c509494a627908cd7..d254825dec0313a069fae3cf9fc0de23f2ad9913 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin1/plugin1.pro
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin1/plugin1.pro
@@ -4,5 +4,6 @@ TARGET = plugin1
 SOURCES += plugin1.cpp
 HEADERS += plugin1.h
 
+RELATIVEPATH=../../../..
 include(../../../../extensionsystem_test.pri)
 
diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin2/plugin2.pro b/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin2/plugin2.pro
index 58798b54f14110c8e0c982aa541c2430bd0dc5c4..18ffc3012ea8e6e456599eb002ae38fedcaaaf5d 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin2/plugin2.pro
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin2/plugin2.pro
@@ -4,5 +4,6 @@ TARGET = plugin2
 SOURCES += plugin2.cpp
 HEADERS += plugin2.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin3/plugin3.pro b/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin3/plugin3.pro
index f601f06162c5e865d5c14df01568a1429ed9d896..7987948a99bf57212f7a9eb67cbb20ffc7c9acb6 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin3/plugin3.pro
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/circularplugins/plugin3/plugin3.pro
@@ -4,5 +4,6 @@ TARGET = plugin3
 SOURCES += plugin3.cpp
 HEADERS += plugin3.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin1/plugin1.pro b/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin1/plugin1.pro
index 9101770f9ac0ac18250ccff682af63737893df55..242b18002230cc776f7bc5acf9d69d4bd25a6f28 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin1/plugin1.pro
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin1/plugin1.pro
@@ -4,12 +4,13 @@ TARGET = plugin1
 SOURCES += plugin1.cpp
 HEADERS += plugin1.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
-LIBS += -L$${PWD}/../plugin2 -L$${PWD}/../plugin3 -lplugin2 -lplugin3
+LIBS += -L$${OUT_PWD}/../plugin2 -L$${OUT_PWD}/../plugin3 -lplugin2 -lplugin3
 
 macx {
 } else:unix {
-    QMAKE_RPATHDIR += $${PWD}/../plugin2
-    QMAKE_RPATHDIR += $${PWD}/../plugin3
+    QMAKE_RPATHDIR += $${OUT_PWD}/../plugin2
+    QMAKE_RPATHDIR += $${OUT_PWD}/../plugin3
 }
diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin2/plugin2.pro b/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin2/plugin2.pro
index a80f4a5c76534d8580e594f040c78dc9af0bd7f8..8b33fb4d7e27d2f7b58416d0dfd926907696ba17 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin2/plugin2.pro
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin2/plugin2.pro
@@ -4,9 +4,10 @@ TARGET = plugin2
 SOURCES += plugin2.cpp
 HEADERS += plugin2.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
 macx {
-    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${PWD}/
+    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${OUT_PWD}/
 }
 
diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin3/plugin3.pro b/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin3/plugin3.pro
index c5ff581b1badd8e3c3c951501dc69d0dedc357f8..7fac0e790b79f45c4fdaf3b43f47b7d8953864be 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin3/plugin3.pro
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/correctplugins1/plugin3/plugin3.pro
@@ -4,12 +4,13 @@ TARGET = plugin3
 SOURCES += plugin3.cpp
 HEADERS += plugin3.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
-LIBS += -L$${PWD}/../plugin2 -lplugin2
+LIBS += -L$${OUT_PWD}/../plugin2 -lplugin2
 
 macx {
-    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${PWD}/
+    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${OUT_PWD}/
 } else:unix {
-    QMAKE_RPATHDIR += $${PWD}/../plugin2
+    QMAKE_RPATHDIR += $${OUT_PWD}/../plugin2
 }
diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/test.pro b/src/libs/extensionsystem/test/auto/pluginmanager/test.pro
index c5934b1331c1d08ef477002b72db90540bd8746e..365801853be19b1baf0fdefe7e13deaa9f597cfc 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/test.pro
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/test.pro
@@ -8,6 +8,7 @@ CONFIG -= app_bundle
 
 # Input
 
+RELATIVEPATH = ../..
 include(../../extensionsystem_test.pri)
 
 SOURCES += tst_pluginmanager.cpp
diff --git a/src/libs/extensionsystem/test/auto/pluginmanager/tst_pluginmanager.cpp b/src/libs/extensionsystem/test/auto/pluginmanager/tst_pluginmanager.cpp
index daa21ed844e5ed784c508baab971e80c7d955527..039b8126598ba398ffa1775ee9e4fedea7213f98 100644
--- a/src/libs/extensionsystem/test/auto/pluginmanager/tst_pluginmanager.cpp
+++ b/src/libs/extensionsystem/test/auto/pluginmanager/tst_pluginmanager.cpp
@@ -198,7 +198,7 @@ void tst_PluginManager::plugins()
 {
     m_pm->setPluginPaths(QStringList() << "plugins");
     QCOMPARE(m_sr->pluginsChangedCount, 1);
-    QSet<PluginSpec *> plugins = m_pm->plugins();
+    QList<PluginSpec *> plugins = m_pm->plugins();
     QCOMPARE(plugins.count(), 3);
     foreach (const QString &expected, QStringList() << "helloworld" << "MyPlugin" << "dummyPlugin") {
         bool found = false;
diff --git a/src/libs/extensionsystem/test/auto/pluginspec/test.pro b/src/libs/extensionsystem/test/auto/pluginspec/test.pro
index d8fda889176a58f4befd52a7dfe07cada81bdfdc..26feb60c1b859da9836287751668a5d98f506bf4 100644
--- a/src/libs/extensionsystem/test/auto/pluginspec/test.pro
+++ b/src/libs/extensionsystem/test/auto/pluginspec/test.pro
@@ -1,14 +1,15 @@
 CONFIG += qtestlib
 TEMPLATE = app
 CONFIG -= app_bundle
-DESTDIR = $${PWD}
+
 # Input
 SOURCES += tst_pluginspec.cpp
 
+RELATIVEPATH = ../..
 include(../../extensionsystem_test.pri)
 
-LIBS += -L$${PWD}/testplugin -ltest
+LIBS += -L$${OUT_PWD}/testplugin -ltest
 macx {
 } else:unix {
-    QMAKE_RPATHDIR += $${PWD}/testplugin
+    QMAKE_RPATHDIR += $${OUT_PWD}/testplugin
 }
diff --git a/src/libs/extensionsystem/test/auto/pluginspec/testplugin/testplugin.pro b/src/libs/extensionsystem/test/auto/pluginspec/testplugin/testplugin.pro
index 8b4d81a82ad3245a1af003af44d4b86374500820..01d98bb17740197d52751b2b2ed39bf38d3bfaa6 100644
--- a/src/libs/extensionsystem/test/auto/pluginspec/testplugin/testplugin.pro
+++ b/src/libs/extensionsystem/test/auto/pluginspec/testplugin/testplugin.pro
@@ -1,13 +1,13 @@
 TEMPLATE = lib
 TARGET = test
-DESTDIR = $${PWD}
 DEFINES += MYPLUGIN_LIBRARY
 SOURCES += testplugin.cpp
 HEADERS += testplugin.h testplugin_global.h
 
+RELATIVEPATH = ../../..
 include(../../../extensionsystem_test.pri)
 
 macx {
-    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${PWD}/
+    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${OUT_PWD}/
 }
 
diff --git a/src/libs/extensionsystem/test/extensionsystem_test.pri b/src/libs/extensionsystem/test/extensionsystem_test.pri
index 6ad874add3ef2f4b1581aec8b82ee9ef173207f4..a3a33c36d21b438135025f1acae8e45bd626a9e4 100644
--- a/src/libs/extensionsystem/test/extensionsystem_test.pri
+++ b/src/libs/extensionsystem/test/extensionsystem_test.pri
@@ -1,12 +1,27 @@
-
+RELATIVEPATH = $$RELATIVEPATH/../../../..
 INCLUDEPATH *= $$PWD/../..
 macx {
-    LIBPATH*= $$PWD/../../../../bin/QtCreator.app/Contents/PlugIns
+    LIBS += -L"$$OUT_PWD/$$RELATIVEPATH/bin/Qt Creator.app/Contents/PlugIns"
 }
 else {
-    LIBPATH*= $$PWD/../../../../lib
+    LIBS += $$OUT_PWD/$$RELATIVEPATH/lib
+}
+
+# stolen from qtcreator.pri
+defineReplace(qtLibraryName) {
+   unset(LIBRARY_NAME)
+   LIBRARY_NAME = $$1
+   CONFIG(debug, debug|release) {
+      !debug_and_release|build_pass {
+          mac:RET = $$member(LIBRARY_NAME, 0)_debug
+              else:win32:RET = $$member(LIBRARY_NAME, 0)d
+      }
+   }
+   isEmpty(RET):RET = $$LIBRARY_NAME
+   return($$RET)
 }
 
 include(../extensionsystem.pri)
 
 QT *= xml
+
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.pro b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.pro
index 9101770f9ac0ac18250ccff682af63737893df55..242b18002230cc776f7bc5acf9d69d4bd25a6f28 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.pro
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin1/plugin1.pro
@@ -4,12 +4,13 @@ TARGET = plugin1
 SOURCES += plugin1.cpp
 HEADERS += plugin1.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
-LIBS += -L$${PWD}/../plugin2 -L$${PWD}/../plugin3 -lplugin2 -lplugin3
+LIBS += -L$${OUT_PWD}/../plugin2 -L$${OUT_PWD}/../plugin3 -lplugin2 -lplugin3
 
 macx {
 } else:unix {
-    QMAKE_RPATHDIR += $${PWD}/../plugin2
-    QMAKE_RPATHDIR += $${PWD}/../plugin3
+    QMAKE_RPATHDIR += $${OUT_PWD}/../plugin2
+    QMAKE_RPATHDIR += $${OUT_PWD}/../plugin3
 }
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.pro b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.pro
index a80f4a5c76534d8580e594f040c78dc9af0bd7f8..8b33fb4d7e27d2f7b58416d0dfd926907696ba17 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.pro
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin2/plugin2.pro
@@ -4,9 +4,10 @@ TARGET = plugin2
 SOURCES += plugin2.cpp
 HEADERS += plugin2.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
 macx {
-    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${PWD}/
+    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${OUT_PWD}/
 }
 
diff --git a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.pro b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.pro
index c5ff581b1badd8e3c3c951501dc69d0dedc357f8..7fac0e790b79f45c4fdaf3b43f47b7d8953864be 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.pro
+++ b/src/libs/extensionsystem/test/manual/pluginview/plugins/plugin3/plugin3.pro
@@ -4,12 +4,13 @@ TARGET = plugin3
 SOURCES += plugin3.cpp
 HEADERS += plugin3.h
 
+RELATIVEPATH = ../../../..
 include(../../../../extensionsystem_test.pri)
 
-LIBS += -L$${PWD}/../plugin2 -lplugin2
+LIBS += -L$${OUT_PWD}/../plugin2 -lplugin2
 
 macx {
-    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${PWD}/
+    QMAKE_LFLAGS_SONAME = -Wl,-install_name,$${OUT_PWD}/
 } else:unix {
-    QMAKE_RPATHDIR += $${PWD}/../plugin2
+    QMAKE_RPATHDIR += $${OUT_PWD}/../plugin2
 }
diff --git a/src/libs/extensionsystem/test/manual/pluginview/test.pro b/src/libs/extensionsystem/test/manual/pluginview/test.pro
index 4b9cd21d8ad556f70b6de8f0d2ef5ad1612e1fff..d4c17967f3989dcde1137e59e2f372a542d00707 100644
--- a/src/libs/extensionsystem/test/manual/pluginview/test.pro
+++ b/src/libs/extensionsystem/test/manual/pluginview/test.pro
@@ -6,4 +6,5 @@ macx:CONFIG-=app_bundle
 HEADERS += plugindialog.h
 SOURCES += plugindialog.cpp
 
+RELATIVEPATH = ../..
 include(../../extensionsystem_test.pri)