summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp17
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp4
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h5
3 files changed, 24 insertions, 2 deletions
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 9dbb33ba14..fec181e61f 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -1163,6 +1163,21 @@ static inline QString toString(subSystemOption option)
return QString();
}
+static inline QString toString(triState genDebugInfo, linkerDebugOption option)
+{
+ switch (genDebugInfo) {
+ case unset:
+ break;
+ case _False:
+ return "false";
+ case _True:
+ if (option == linkerDebugOptionFastLink)
+ return "DebugFastLink";
+ return "true";
+ }
+ return QString();
+}
+
static inline QString toString(machineTypeOption option)
{
switch (option) {
@@ -1541,7 +1556,7 @@ void VCXProjectWriter::write(XmlOutput &xml, const VCLinkerTool &tool)
<< attrTagS(_EntryPointSymbol, tool.EntryPointSymbol)
<< attrTagX(_ForceSymbolReferences, tool.ForceSymbolReferences, ";")
<< attrTagS(_FunctionOrder, tool.FunctionOrder)
- << attrTagT(_GenerateDebugInformation, tool.GenerateDebugInformation)
+ << attrTagS(_GenerateDebugInformation, toString(tool.GenerateDebugInformation, tool.DebugInfoOption))
<< attrTagT(_GenerateManifest, tool.GenerateManifest)
<< attrTagT(_GenerateWindowsMetadata, tool.GenerateWindowsMetadata)
<< attrTagS(_WindowsMetadataFile, tool.GenerateWindowsMetadata == _True ? tool.WindowsMetadataFile : QString())
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 7fd748e39c..82adc6814c 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -1430,8 +1430,10 @@ bool VCLinkerTool::parseOption(const char* option)
}else
EnableUAC = _True;
break;
- case 0x3389797: // /DEBUG
+ case 0x3389797: // /DEBUG[:FASTLINK]
GenerateDebugInformation = _True;
+ if (config->CompilerVersion >= NET2015 && strcmp(option + 7, "FASTLINK") == 0)
+ DebugInfoOption = linkerDebugOptionFastLink;
break;
case 0x0033896: // /DEF:filename
ModuleDefinitionFile = option+5;
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
index 7092da3e59..96923ba23d 100644
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ b/qmake/generators/win32/msvc_objectmodel.h
@@ -282,6 +282,10 @@ enum inlineExpansionOption {
expandAnySuitable,
expandDefault // Not useful number, but stops the output
};
+enum linkerDebugOption {
+ linkerDebugOptionNone,
+ linkerDebugOptionFastLink
+};
enum linkIncrementalType {
linkIncrementalDefault,
linkIncrementalNo,
@@ -595,6 +599,7 @@ public:
QStringList ForceSymbolReferences;
QString FunctionOrder;
triState GenerateDebugInformation;
+ linkerDebugOption DebugInfoOption;
triState GenerateMapFile;
qlonglong HeapCommitSize;
qlonglong HeapReserveSize;