diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h index 8b19f22bfa..ce28bd944e 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h @@ -1734,6 +1734,8 @@ public: int getVisualStudioVersion() const override { return 11; } String getSolutionComment() const override { return "# Visual Studio 2012"; } String getDefaultToolset() const override { return "v110"; } + Value getWindowsTargetPlatformVersionValue() { return getSetting (Ids::windowsTargetPlatformVersion); } + String getWindowsTargetPlatformVersion() const { return settings [Ids::windowsTargetPlatformVersion]; } static MSVCProjectExporterVC2012* createForSettings (Project& project, const ValueTree& settings) { @@ -1754,6 +1756,16 @@ public: addIPPLibraryProperty (props); } + void addWindowsTargetPlatformProperties (PropertyListBuilder& props) + { + static const char* targetPlatformNames[] = { "(default)", "8.1", "10.0.10240.0", "10.0.10586.0", "10.0.14393.0", "10.0.15063.0", nullptr }; + const var targetPlatforms[] = { var(), "8.1", "10.0.10240.0", "10.0.10586.0", "10.0.14393.0", "10.0.15063.0" }; + + props.add (new ChoicePropertyComponent (getWindowsTargetPlatformVersionValue(), "Windows Target Platform", + StringArray (targetPlatformNames), Array (targetPlatforms, numElementsInArray (targetPlatforms))), + "The Windows target platform version to use"); + } + private: void addPlatformToolsetToPropertyGroup (XmlElement& p) const override { @@ -1761,6 +1773,15 @@ private: e->createNewChildElement ("PlatformToolset")->addTextElement (getPlatformToolset()); } + void addWindowsTargetPlatformVersionToPropertyGroup (XmlElement& p) const override + { + const String& targetVersion = getWindowsTargetPlatformVersion(); + + if (targetVersion.isNotEmpty()) + forEachXmlChildElementWithTagName (p, e, "PropertyGroup") + e->createNewChildElement ("WindowsTargetPlatformVersion")->addTextElement (getWindowsTargetPlatformVersion()); + } + JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2012) }; @@ -1798,6 +1819,7 @@ public: addToolsetProperty (props, toolsetNames, toolsets, numElementsInArray (toolsets)); addIPPLibraryProperty (props); + addWindowsTargetPlatformProperties (props); } JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2013) @@ -1837,6 +1859,7 @@ public: addToolsetProperty (props, toolsetNames, toolsets, numElementsInArray (toolsets)); addIPPLibraryProperty (props); + addWindowsTargetPlatformProperties (props); } JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2015) @@ -1870,9 +1893,6 @@ public: Value getCppStandardValue() { return getSetting (Ids::cppLanguageStandard); } String getCppLanguageStandard() const override { return settings [Ids::cppLanguageStandard]; } - Value getWindowsTargetPlatformVersionValue() { return getSetting (Ids::windowsTargetPlatformVersion); } - String getWindowsTargetPlatformVersion() const { return settings [Ids::windowsTargetPlatformVersion]; } - void createExporterProperties (PropertyListBuilder& props) override { MSVCProjectExporterBase::createExporterProperties (props); @@ -1882,6 +1902,7 @@ public: addToolsetProperty (props, toolsetNames, toolsets, numElementsInArray (toolsets)); addIPPLibraryProperty (props); + addWindowsTargetPlatformProperties (props); static const char* cppStandardNames[] = { "(default)", "C++14", "Latest C++ Standard", nullptr }; @@ -1893,22 +1914,6 @@ public: props.add (new ChoicePropertyComponent (getCppStandardValue(), "C++ standard to use", StringArray (cppStandardNames), cppStandardValues), "The C++ language standard to use"); - - static const char* targetPlatformNames[] = { "(default)", "8.1", "10.0.10240.0", "10.0.10586.0", "10.0.14393.0", "10.0.15063.0", nullptr }; - const var targetPlatforms[] = { var(), "8.1", "10.0.10240.0", "10.0.10586.0", "10.0.14393.0", "10.0.15063.0" }; - - props.add (new ChoicePropertyComponent (getWindowsTargetPlatformVersionValue(), "VS2017 Windows Target Platform", - StringArray (targetPlatformNames), Array (targetPlatforms, numElementsInArray (targetPlatforms))), - "The Windows target platform to use"); - } - - void addWindowsTargetPlatformVersionToPropertyGroup (XmlElement& p) const override - { - const String& targetVersion = getWindowsTargetPlatformVersion(); - - if (targetVersion.isNotEmpty()) - forEachXmlChildElementWithTagName (p, e, "PropertyGroup") - e->createNewChildElement ("WindowsTargetPlatformVersion")->addTextElement (getWindowsTargetPlatformVersion()); } JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2017)