From d739c9ff734733fef961c05b36404843086c582c Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 27 Oct 2014 09:16:45 +0100 Subject: [PATCH] Compile fix for the cdb extension. The naming of the architecture subfolders have changed between the "Debugging Tools for Windows" versions and the tools shipped with the Windows 8 SDK. Old names: amd64 and i386. New names: x64 and x86. Change-Id: Id828ba9fbb0c5074d1046ac7a710fedf07c6c984 Reviewed-by: Friedemann Kleint Reviewed-by: Joerg Bornemann --- src/libs/qtcreatorcdbext/qtcreatorcdbext.pro | 19 ++++++++++++++++++- src/libs/qtcreatorcdbext/qtcreatorcdbext.qbs | 14 ++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro b/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro index c99f940d94c..5ae2f9deef3 100644 --- a/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro +++ b/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro @@ -31,12 +31,30 @@ ENV_LIBPATH=$$(LIBPATH) contains(ENV_CPU, ^AMD64$) { DIRNAME=$${BASENAME}64 CDB_PLATFORM=amd64 + + exists($$CDB_PATH/lib/amd64) { + LIBS+= -L$$CDB_PATH/lib/amd64 -ldbgeng + } else { + LIBS+= -L$$CDB_PATH/lib/x64 -ldbgeng + } } else:isEmpty(ENV_CPU):contains(ENV_LIBPATH, ^.*amd64.*$) { DIRNAME=$${BASENAME}64 CDB_PLATFORM=amd64 + + exists($$CDB_PATH/lib/amd64) { + LIBS+= -L$$CDB_PATH/lib/amd64 -ldbgeng + } else { + LIBS+= -L$$CDB_PATH/lib/x64 -ldbgeng + } } else { DIRNAME=$${BASENAME}32 CDB_PLATFORM=i386 + + exists($$CDB_PATH/lib/i386}) { + LIBS+= -L$$CDB_PATH/lib/i386 -ldbgeng + } else { + LIBS+= -L$$CDB_PATH/lib/x86 -ldbgeng + } } LIBS+=-luser32 @@ -47,7 +65,6 @@ TARGET = $$BASENAME message("Compiling Qt Creator CDB extension $$TARGET $$DESTDIR for $$CDB_PLATFORM using $$CDB_PATH") INCLUDEPATH += $$CDB_PATH/inc -LIBS+= -L$$CDB_PATH/lib/$$CDB_PLATFORM -ldbgeng CONFIG -= qt QT -= gui diff --git a/src/libs/qtcreatorcdbext/qtcreatorcdbext.qbs b/src/libs/qtcreatorcdbext/qtcreatorcdbext.qbs index 29c6cc9fe99..4b2f0fdb034 100644 --- a/src/libs/qtcreatorcdbext/qtcreatorcdbext.qbs +++ b/src/libs/qtcreatorcdbext/qtcreatorcdbext.qbs @@ -30,11 +30,21 @@ QtcLibrary { } return undefined; } - property string cdbPlatform: qbs.architecture.contains("x86_64") ? "x64" : "x86" + property string cdbLibPath: { + var paths = qbs.architecture.contains("x86_64") ? ["x64", "amd64"] : ["x86", "i386"]; + var c = paths.length; + for (var i = 0; i < c; ++i) { + var libPath = FileInfo.joinPaths(cdbPath, "lib", paths[i]); + if (File.exists(libPath)) { + return libPath; + } + } + return undefined; + } cpp.includePaths: [FileInfo.joinPaths(cdbPath, "inc")] cpp.dynamicLibraries: [ "user32.lib", - FileInfo.joinPaths(cdbPath, "lib", cdbPlatform, "dbgeng.lib") + FileInfo.joinPaths(cdbLibPath, "dbgeng.lib") ] cpp.linkerFlags: ["/DEF:" + FileInfo.toWindowsSeparators( FileInfo.joinPaths(product.sourceDirectory,