|
|
@ -636,126 +636,89 @@ bool cmGlobalVisualStudio10Generator::FindVCTargetsPath(cmMakefile* mf) |
|
|
|
cmsys::ofstream fout(vcxprojAbs.c_str()); |
|
|
|
cmXMLWriter xw(fout); |
|
|
|
|
|
|
|
/* clang-format off */ |
|
|
|
xw.StartDocument(); |
|
|
|
xw.StartElement("Project"); |
|
|
|
xw.Attribute("DefaultTargets", "Build"); |
|
|
|
xw.Attribute("ToolsVersion", "4.0"); |
|
|
|
xw.Attribute("xmlns", |
|
|
|
"http://schemas.microsoft.com/developer/msbuild/2003"); |
|
|
|
if (this->IsNsightTegra()) { |
|
|
|
xw.StartElement("PropertyGroup"); |
|
|
|
xw.Attribute("Label", "NsightTegraProject"); |
|
|
|
xw.StartElement("NsightTegraProjectRevisionNumber"); |
|
|
|
xw.Content("6"); |
|
|
|
xw.EndElement(); // NsightTegraProjectRevisionNumber
|
|
|
|
xw.EndElement(); // PropertyGroup
|
|
|
|
} |
|
|
|
xw.StartElement("ItemGroup"); |
|
|
|
xw.Attribute("Label", "ProjectConfigurations"); |
|
|
|
xw.StartElement("ProjectConfiguration"); |
|
|
|
xw.Attribute("Include", "Debug|" + this->GetPlatformName()); |
|
|
|
xw.StartElement("Configuration"); |
|
|
|
xw.Content("Debug"); |
|
|
|
xw.EndElement(); // Configuration
|
|
|
|
xw.StartElement("Platform"); |
|
|
|
xw.Content(this->GetPlatformName()); |
|
|
|
xw.EndElement(); // Platform
|
|
|
|
xw.EndElement(); // ProjectConfiguration
|
|
|
|
xw.EndElement(); // ItemGroup
|
|
|
|
xw.StartElement("PropertyGroup"); |
|
|
|
xw.Attribute("Label", "Globals"); |
|
|
|
xw.StartElement("ProjectGuid"); |
|
|
|
xw.Content("{F3FC6D86-508D-3FB1-96D2-995F08B142EC}"); |
|
|
|
xw.EndElement(); // ProjectGuid
|
|
|
|
xw.StartElement("Keyword"); |
|
|
|
xw.Content("Win32Proj"); |
|
|
|
xw.EndElement(); // Keyword
|
|
|
|
xw.StartElement("Platform"); |
|
|
|
xw.Content(this->GetPlatformName()); |
|
|
|
xw.EndElement(); // Platform
|
|
|
|
if (this->GetSystemName() == "WindowsPhone") { |
|
|
|
xw.StartElement("ApplicationType"); |
|
|
|
xw.Content("Windows Phone"); |
|
|
|
xw.EndElement(); // ApplicationType
|
|
|
|
xw.StartElement("ApplicationTypeRevision"); |
|
|
|
xw.Content(this->GetSystemVersion()); |
|
|
|
xw.EndElement(); // ApplicationTypeRevision
|
|
|
|
} else if (this->GetSystemName() == "WindowsStore") { |
|
|
|
xw.StartElement("ApplicationType"); |
|
|
|
xw.Content("Windows Store"); |
|
|
|
xw.EndElement(); // ApplicationType
|
|
|
|
xw.StartElement("ApplicationTypeRevision"); |
|
|
|
xw.Content(this->GetSystemVersion()); |
|
|
|
xw.EndElement(); // ApplicationTypeRevision
|
|
|
|
} |
|
|
|
if (!this->WindowsTargetPlatformVersion.empty()) { |
|
|
|
xw.StartElement("WindowsTargetPlatformVersion"); |
|
|
|
xw.Content(this->WindowsTargetPlatformVersion); |
|
|
|
xw.EndElement(); // WindowsTargetPlatformVersion
|
|
|
|
} |
|
|
|
if (this->GetPlatformName() == "ARM64") { |
|
|
|
xw.StartElement("WindowsSDKDesktopARM64Support"); |
|
|
|
xw.Content("true"); |
|
|
|
xw.EndElement(); // WindowsSDK64DesktopARMSupport
|
|
|
|
} |
|
|
|
else if (this->GetPlatformName() == "ARM") { |
|
|
|
xw.StartElement("WindowsSDKDesktopARMSupport"); |
|
|
|
xw.Content("true"); |
|
|
|
xw.EndElement(); // WindowsSDKDesktopARMSupport
|
|
|
|
} |
|
|
|
xw.EndElement(); // PropertyGroup
|
|
|
|
xw.StartElement("Import"); |
|
|
|
xw.Attribute("Project", |
|
|
|
"$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); |
|
|
|
xw.EndElement(); // Import
|
|
|
|
cmXMLDocument doc(xw); |
|
|
|
cmXMLElement eprj(doc, "Project"); |
|
|
|
eprj.Attribute("DefaultTargets", "Build"); |
|
|
|
eprj.Attribute("ToolsVersion", "4.0"); |
|
|
|
eprj.Attribute("xmlns", |
|
|
|
"http://schemas.microsoft.com/developer/msbuild/2003"); |
|
|
|
if (this->IsNsightTegra()) { |
|
|
|
cmXMLElement epg(eprj, "PropertyGroup"); |
|
|
|
epg.Attribute("Label", "NsightTegraProject"); |
|
|
|
cmXMLElement(epg, "NsightTegraProjectRevisionNumber").Content("6"); |
|
|
|
} |
|
|
|
{ |
|
|
|
cmXMLElement eig(eprj, "ItemGroup"); |
|
|
|
eig.Attribute("Label", "ProjectConfigurations"); |
|
|
|
cmXMLElement epc(eig, "ProjectConfiguration"); |
|
|
|
epc.Attribute("Include", "Debug|" + this->GetPlatformName()); |
|
|
|
cmXMLElement(epc, "Configuration").Content("Debug"); |
|
|
|
cmXMLElement(epc, "Platform").Content(this->GetPlatformName()); |
|
|
|
} |
|
|
|
{ |
|
|
|
cmXMLElement epg(eprj, "PropertyGroup"); |
|
|
|
epg.Attribute("Label", "Globals"); |
|
|
|
cmXMLElement(epg, "ProjectGuid") |
|
|
|
.Content("{F3FC6D86-508D-3FB1-96D2-995F08B142EC}"); |
|
|
|
cmXMLElement(epg, "Keyword").Content("Win32Proj"); |
|
|
|
cmXMLElement(epg, "Platform").Content(this->GetPlatformName()); |
|
|
|
if (this->GetSystemName() == "WindowsPhone") { |
|
|
|
cmXMLElement(epg, "ApplicationType").Content("Windows Phone"); |
|
|
|
cmXMLElement(epg, "ApplicationTypeRevision") |
|
|
|
.Content(this->GetSystemVersion()); |
|
|
|
} else if (this->GetSystemName() == "WindowsStore") { |
|
|
|
cmXMLElement(epg, "ApplicationType").Content("Windows Store"); |
|
|
|
cmXMLElement(epg, "ApplicationTypeRevision") |
|
|
|
.Content(this->GetSystemVersion()); |
|
|
|
} |
|
|
|
if (!this->WindowsTargetPlatformVersion.empty()) { |
|
|
|
cmXMLElement(epg, "WindowsTargetPlatformVersion") |
|
|
|
.Content(this->WindowsTargetPlatformVersion); |
|
|
|
} |
|
|
|
if (this->GetPlatformName() == "ARM64") { |
|
|
|
cmXMLElement(epg, "WindowsSDKDesktopARM64Support").Content("true"); |
|
|
|
} else if (this->GetPlatformName() == "ARM") { |
|
|
|
cmXMLElement(epg, "WindowsSDKDesktopARMSupport").Content("true"); |
|
|
|
} |
|
|
|
} |
|
|
|
cmXMLElement(eprj, "Import") |
|
|
|
.Attribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); |
|
|
|
if (!this->GeneratorToolsetHostArchitecture.empty()) { |
|
|
|
xw.StartElement("PropertyGroup"); |
|
|
|
xw.StartElement("PreferredToolArchitecture"); |
|
|
|
xw.Content(this->GeneratorToolsetHostArchitecture); |
|
|
|
xw.EndElement(); // PreferredToolArchitecture
|
|
|
|
xw.EndElement(); // PropertyGroup
|
|
|
|
cmXMLElement epg(eprj, "PropertyGroup"); |
|
|
|
cmXMLElement(epg, "PreferredToolArchitecture") |
|
|
|
.Content(this->GeneratorToolsetHostArchitecture); |
|
|
|
} |
|
|
|
xw.StartElement("PropertyGroup"); |
|
|
|
xw.Attribute("Label", "Configuration"); |
|
|
|
xw.StartElement("ConfigurationType"); |
|
|
|
{ |
|
|
|
cmXMLElement epg(eprj, "PropertyGroup"); |
|
|
|
epg.Attribute("Label", "Configuration"); |
|
|
|
{ |
|
|
|
cmXMLElement ect(epg, "ConfigurationType"); |
|
|
|
if (this->IsNsightTegra()) { |
|
|
|
// Tegra-Android platform does not understand "Utility".
|
|
|
|
ect.Content("StaticLibrary"); |
|
|
|
} else { |
|
|
|
ect.Content("Utility"); |
|
|
|
} |
|
|
|
} |
|
|
|
cmXMLElement(epg, "CharacterSet").Content("MultiByte"); |
|
|
|
if (this->IsNsightTegra()) { |
|
|
|
// Tegra-Android platform does not understand "Utility".
|
|
|
|
xw.Content("StaticLibrary"); |
|
|
|
cmXMLElement(epg, "NdkToolchainVersion") |
|
|
|
.Content(this->GetPlatformToolsetString()); |
|
|
|
} else { |
|
|
|
xw.Content("Utility"); |
|
|
|
cmXMLElement(epg, "PlatformToolset") |
|
|
|
.Content(this->GetPlatformToolsetString()); |
|
|
|
} |
|
|
|
xw.EndElement(); // ConfigurationType
|
|
|
|
xw.StartElement("CharacterSet"); |
|
|
|
xw.Content("MultiByte"); |
|
|
|
xw.EndElement(); // CharacterSet
|
|
|
|
if (this->IsNsightTegra()) { |
|
|
|
xw.StartElement("NdkToolchainVersion"); |
|
|
|
xw.Content(this->GetPlatformToolsetString()); |
|
|
|
xw.EndElement(); // NdkToolchainVersion
|
|
|
|
} else { |
|
|
|
xw.StartElement("PlatformToolset"); |
|
|
|
xw.Content(this->GetPlatformToolsetString()); |
|
|
|
xw.EndElement(); // PlatformToolset
|
|
|
|
} |
|
|
|
xw.EndElement(); // PropertyGroup
|
|
|
|
xw.StartElement("Import"); |
|
|
|
xw.Attribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props"); |
|
|
|
xw.EndElement(); // Import
|
|
|
|
xw.StartElement("ItemDefinitionGroup"); |
|
|
|
xw.StartElement("PostBuildEvent"); |
|
|
|
xw.StartElement("Command"); |
|
|
|
xw.Content("echo VCTargetsPath=$(VCTargetsPath)"); |
|
|
|
xw.EndElement(); // Command
|
|
|
|
xw.EndElement(); // PostBuildEvent
|
|
|
|
xw.EndElement(); // ItemDefinitionGroup
|
|
|
|
xw.StartElement("Import"); |
|
|
|
xw.Attribute("Project", |
|
|
|
"$(VCTargetsPath)\\Microsoft.Cpp.targets"); |
|
|
|
xw.EndElement(); // Import
|
|
|
|
xw.EndElement(); // Project
|
|
|
|
xw.EndDocument(); |
|
|
|
/* clang-format on */ |
|
|
|
} |
|
|
|
cmXMLElement(eprj, "Import") |
|
|
|
.Attribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props"); |
|
|
|
{ |
|
|
|
cmXMLElement eidg(eprj, "ItemDefinitionGroup"); |
|
|
|
cmXMLElement epbe(eidg, "PostBuildEvent"); |
|
|
|
cmXMLElement(epbe, "Command") |
|
|
|
.Content("echo VCTargetsPath=$(VCTargetsPath)"); |
|
|
|
} |
|
|
|
cmXMLElement(eprj, "Import") |
|
|
|
.Attribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets"); |
|
|
|
} |
|
|
|
|
|
|
|
std::vector<std::string> cmd; |
|
|
|