summaryrefslogtreecommitdiffstats
path: root/qmake/generators
diff options
context:
space:
mode:
Diffstat (limited to 'qmake/generators')
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp4
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp11
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h4
3 files changed, 19 insertions, 0 deletions
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index e96455bea1..0c29008610 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -139,6 +139,7 @@ const char _GenerateMapFile[] = "GenerateMapFile";
const char _GenerateServerFiles[] = "GenerateServerFiles";
const char _GenerateStublessProxies[] = "GenerateStublessProxies";
const char _GenerateTypeLibrary[] = "GenerateTypeLibrary";
+const char _GenerateWindowsMetadata[] = "GenerateWindowsMetadata";
const char _GenerateXMLDocumentationFiles[] = "GenerateXMLDocumentationFiles";
const char _HeaderFileName[] = "HeaderFileName";
const char _HeapCommitSize[] = "HeapCommitSize";
@@ -255,6 +256,7 @@ const char _Version[] = "Version";
const char _WarnAsError[] = "WarnAsError";
const char _WarningLevel[] = "WarningLevel";
const char _WholeProgramOptimization[] = "WholeProgramOptimization";
+const char _WindowsMetadataFile[] = "WindowsMetadataFile";
const char _XMLDocumentationFileName[] = "XMLDocumentationFileName";
@@ -1479,6 +1481,8 @@ void VCXProjectWriter::write(XmlOutput &xml, const VCLinkerTool &tool)
<< attrTagS(_FunctionOrder, tool.FunctionOrder)
<< attrTagT(_GenerateDebugInformation, tool.GenerateDebugInformation)
<< attrTagT(_GenerateManifest, tool.GenerateManifest)
+ << attrTagT(_GenerateWindowsMetadata, tool.GenerateWindowsMetadata)
+ << attrTagS(_WindowsMetadataFile, tool.GenerateWindowsMetadata == _True ? tool.WindowsMetadataFile : QString())
<< attrTagT(_GenerateMapFile, tool.GenerateMapFile)
<< attrTagL(_HeapCommitSize, tool.HeapCommitSize, /*ifNot*/ -1)
<< attrTagL(_HeapReserveSize, tool.HeapReserveSize, /*ifNot*/ -1)
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index dab06f5f01..2b343fd9f7 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -1198,6 +1198,7 @@ VCLinkerTool::VCLinkerTool()
TurnOffAssemblyGeneration(unset),
TypeLibraryResourceID(0),
GenerateManifest(unset),
+ GenerateWindowsMetadata(unset),
EnableUAC(unset),
UACUIAccess(unset),
SectionAlignment(-1),
@@ -1265,6 +1266,7 @@ bool VCLinkerTool::parseOption(const char* option)
displayHash("/SWAPRUN"); displayHash("/TLBID"); displayHash("/TLBOUT");
displayHash("/TSAWARE"); displayHash("/VERBOSE"); displayHash("/VERSION");
displayHash("/VXD"); displayHash("/WS "); displayHash("/libpath");
+ displayHash("/WINMD"); displayHash("/WINMDFILE:");
#endif
#ifdef USE_DISPLAY_HASH
@@ -1377,6 +1379,15 @@ bool VCLinkerTool::parseOption(const char* option)
else
GenerateManifest = _True;
break;
+ case 0x34be314: // /WINMD[:NO]
+ if ((*(option+6) == ':' && (*(option+7) == 'N' || *(option+7) == 'n')))
+ GenerateWindowsMetadata = _False;
+ else
+ GenerateWindowsMetadata = _True;
+ break;
+ case 0x31be7e5: // /WINMDFILE:filename
+ WindowsMetadataFile = option+11;
+ break;
case 0x8b64559: // /MANIFESTDEPENDENCY:manifest_dependency
AdditionalManifestDependencies += option+20;
break;
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
index 4552e8e487..48324b9d27 100644
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ b/qmake/generators/win32/msvc_objectmodel.h
@@ -674,6 +674,10 @@ public:
QString KeyFile;
QString LinkErrorReporting;
+ // VS2012
+ triState GenerateWindowsMetadata;
+ QString WindowsMetadataFile;
+
VCConfiguration* config;
};