diff --git a/src/plugins/projectexplorer/msvcparser.cpp b/src/plugins/projectexplorer/msvcparser.cpp
index 647867a68103c32b9c4e2ce3834d76995dc8895b..7b2357a7dbe31c38179cbc80dd16affdc7920515 100644
--- a/src/plugins/projectexplorer/msvcparser.cpp
+++ b/src/plugins/projectexplorer/msvcparser.cpp
@@ -330,5 +330,5 @@ void ProjectExplorerPlugin::testMsvcOutputParsers()
                           tasks, childStdOutLines, childStdErrLines,
                           outputLines);
 }
-#endif
 
+#endif // WITH_TEST
diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h
index 877026c189fb43dc3131b8b98fe09cc2660fcfae..8f7bfffee6090e0b2b0b423c495eb6d71090e334 100644
--- a/src/plugins/projectexplorer/projectexplorer.h
+++ b/src/plugins/projectexplorer/projectexplorer.h
@@ -247,10 +247,8 @@ private slots:
     void testGnuMakeParserTaskMangling_data();
     void testGnuMakeParserTaskMangling();
 
-#ifdef Q_OS_WIN
     void testMsvcOutputParsers_data();
     void testMsvcOutputParsers();
-#endif
 
     void testGccAbiGuessing_data();
     void testGccAbiGuessing();
diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro
index b526d840fd7ad96e2faa98df4608b12175acc721..42b2d501bafdca4f0ec6eb50fa385e87508b1067 100644
--- a/src/plugins/projectexplorer/projectexplorer.pro
+++ b/src/plugins/projectexplorer/projectexplorer.pro
@@ -202,6 +202,25 @@ FORMS += processstep.ui \
     publishing/publishingwizardselectiondialog.ui \
     codestylesettingspropertiespage.ui
 
+WINSOURCES += \
+    windebuginterface.cpp \
+    msvcparser.cpp \
+    msvctoolchain.cpp \
+    abstractmsvctoolchain.cpp \
+    wincetoolchain.cpp
+
+WINHEADERS += \
+    windebuginterface.h \
+    msvcparser.h \
+    msvctoolchain.h \
+    abstractmsvctoolchain.h \
+    wincetoolchain.h
+
+win32|equals(TEST, 1) {
+    SOURCES += $$WINSOURCES
+    HEADERS += $$WINHEADERS
+}
+
 equals(TEST, 1) {
     SOURCES += \
         outputparser_test.cpp
@@ -209,22 +228,8 @@ equals(TEST, 1) {
         outputparser_test.h
 }
 
-win32 {
-    SOURCES += \
-        windebuginterface.cpp \
-        msvcparser.cpp \
-        msvctoolchain.cpp \
-        abstractmsvctoolchain.cpp \
-        wincetoolchain.cpp
-    HEADERS += \
-        windebuginterface.h \
-        msvcparser.h \
-        msvctoolchain.h \
-        abstractmsvctoolchain.h \
-        wincetoolchain.h
-} else {
-    macx:LIBS += -framework Carbon
-}
+macx:LIBS += -framework Carbon
+
 RESOURCES += projectexplorer.qrc
 
 # Some way to override the architecture used in Abi:
diff --git a/src/plugins/projectexplorer/windebuginterface.cpp b/src/plugins/projectexplorer/windebuginterface.cpp
index e1f0d3c0d6f55caa821570772856c0452029bf0b..fbe6074eb2c889d0108654e5eace3d1f5c50f270 100644
--- a/src/plugins/projectexplorer/windebuginterface.cpp
+++ b/src/plugins/projectexplorer/windebuginterface.cpp
@@ -32,8 +32,11 @@
 
 #include "windebuginterface.h"
 
+#ifdef Q_OS_WIN
+
 #include <windows.h>
 
+
 /*!
     \class ProjectExplorer::Internal::WinDebugInterface
     \brief Windows: Captures output of the Windows API OutputDebugString() function.
@@ -140,3 +143,25 @@ bool WinDebugInterface::runLoop()
 
 } // namespace Internal
 } // namespace ProjectExplorer
+
+#else
+
+namespace ProjectExplorer {
+namespace Internal {
+
+WinDebugInterface *WinDebugInterface::m_instance = 0;
+
+WinDebugInterface *WinDebugInterface::instance() { return 0; }
+
+WinDebugInterface::WinDebugInterface(QObject *) {}
+
+WinDebugInterface::~WinDebugInterface() {}
+
+void WinDebugInterface::run() {}
+
+bool WinDebugInterface::runLoop() { return false; }
+
+} // namespace Internal
+} // namespace ProjectExplorer
+
+#endif