mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
Projucer: Add Visual Studio 2026 exporter
This commit is contained in:
parent
049cd7c77e
commit
d1eb77be50
3 changed files with 50 additions and 1 deletions
|
|
@ -2863,3 +2863,48 @@ private:
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2022)
|
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2022)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
class MSVCProjectExporterVC2026 final : public MSVCProjectExporterBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MSVCProjectExporterVC2026 (Project& p, const ValueTree& t)
|
||||||
|
: MSVCProjectExporterBase (p, t, getTargetFolderName())
|
||||||
|
{
|
||||||
|
name = getDisplayName();
|
||||||
|
|
||||||
|
targetPlatformVersion.setDefault (defaultTargetPlatform);
|
||||||
|
platformToolsetValue.setDefault (defaultToolset);
|
||||||
|
}
|
||||||
|
|
||||||
|
static String getDisplayName() { return "Visual Studio 2026"; }
|
||||||
|
static String getValueTreeTypeName() { return "VS2026"; }
|
||||||
|
static String getTargetFolderName() { return "VisualStudio2026"; }
|
||||||
|
|
||||||
|
Identifier getExporterIdentifier() const override { return getValueTreeTypeName(); }
|
||||||
|
|
||||||
|
int getVisualStudioVersion() const override { return 18; }
|
||||||
|
String getSolutionComment() const override { return "# Visual Studio Version 18"; }
|
||||||
|
String getToolsVersion() const override { return "18.0"; }
|
||||||
|
String getDefaultToolset() const override { return defaultToolset; }
|
||||||
|
String getDefaultWindowsTargetPlatformVersion() const override { return defaultTargetPlatform; }
|
||||||
|
|
||||||
|
static MSVCProjectExporterVC2026* createForSettings (Project& projectToUse, const ValueTree& settingsToUse)
|
||||||
|
{
|
||||||
|
if (settingsToUse.hasType (getValueTreeTypeName()))
|
||||||
|
return new MSVCProjectExporterVC2026 (projectToUse, settingsToUse);
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void createExporterProperties (PropertyListBuilder& props) override
|
||||||
|
{
|
||||||
|
addToolsetProperty (props, { "v140", "v140_xp", "v141", "v141_xp", "v142", "v143", "v145", "ClangCL" });
|
||||||
|
MSVCProjectExporterBase::createExporterProperties (props);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
const String defaultToolset { "v145" }, defaultTargetPlatform { "10.0" };
|
||||||
|
|
||||||
|
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2026)
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,7 @@ std::vector<ProjectExporter::ExporterTypeInfo> ProjectExporter::getExporterTypeI
|
||||||
XcodeProjectExporter::getTargetFolderNameiOS(),
|
XcodeProjectExporter::getTargetFolderNameiOS(),
|
||||||
createIcon (export_xcode_svg, (size_t) export_xcode_svgSize) },
|
createIcon (export_xcode_svg, (size_t) export_xcode_svgSize) },
|
||||||
|
|
||||||
|
createExporterTypeInfo<MSVCProjectExporterVC2026> (export_visualStudio_svg, export_visualStudio_svgSize),
|
||||||
createExporterTypeInfo<MSVCProjectExporterVC2022> (export_visualStudio_svg, export_visualStudio_svgSize),
|
createExporterTypeInfo<MSVCProjectExporterVC2022> (export_visualStudio_svg, export_visualStudio_svgSize),
|
||||||
createExporterTypeInfo<MSVCProjectExporterVC2019> (export_visualStudio_svg, export_visualStudio_svgSize),
|
createExporterTypeInfo<MSVCProjectExporterVC2019> (export_visualStudio_svg, export_visualStudio_svgSize),
|
||||||
|
|
||||||
|
|
@ -160,6 +161,7 @@ std::unique_ptr<ProjectExporter> ProjectExporter::createExporterFromSettings (Pr
|
||||||
return tryCreatingExporter (project,
|
return tryCreatingExporter (project,
|
||||||
settings,
|
settings,
|
||||||
Tag<XcodeProjectExporter>{},
|
Tag<XcodeProjectExporter>{},
|
||||||
|
Tag<MSVCProjectExporterVC2026>{},
|
||||||
Tag<MSVCProjectExporterVC2022>{},
|
Tag<MSVCProjectExporterVC2022>{},
|
||||||
Tag<MSVCProjectExporterVC2019>{},
|
Tag<MSVCProjectExporterVC2019>{},
|
||||||
Tag<MakefileProjectExporter>{},
|
Tag<MakefileProjectExporter>{},
|
||||||
|
|
@ -176,6 +178,7 @@ bool ProjectExporter::canProjectBeLaunched (Project* project)
|
||||||
XcodeProjectExporter::getValueTreeTypeNameMac(),
|
XcodeProjectExporter::getValueTreeTypeNameMac(),
|
||||||
XcodeProjectExporter::getValueTreeTypeNameiOS(),
|
XcodeProjectExporter::getValueTreeTypeNameiOS(),
|
||||||
#elif JUCE_WINDOWS
|
#elif JUCE_WINDOWS
|
||||||
|
MSVCProjectExporterVC2026::getValueTreeTypeName(),
|
||||||
MSVCProjectExporterVC2022::getValueTreeTypeName(),
|
MSVCProjectExporterVC2022::getValueTreeTypeName(),
|
||||||
MSVCProjectExporterVC2019::getValueTreeTypeName(),
|
MSVCProjectExporterVC2019::getValueTreeTypeName(),
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -254,7 +254,8 @@ ValueTree PIPGenerator::createExporterChild (const Identifier& exporterIdentifie
|
||||||
exporter.setProperty (Ids::targetFolder, "Builds/" + ProjectExporter::getTypeInfoForExporter (exporterIdentifier).targetFolder, nullptr);
|
exporter.setProperty (Ids::targetFolder, "Builds/" + ProjectExporter::getTypeInfoForExporter (exporterIdentifier).targetFolder, nullptr);
|
||||||
|
|
||||||
const Identifier vsExporters[] { MSVCProjectExporterVC2019::getValueTreeTypeName(),
|
const Identifier vsExporters[] { MSVCProjectExporterVC2019::getValueTreeTypeName(),
|
||||||
MSVCProjectExporterVC2022::getValueTreeTypeName() };
|
MSVCProjectExporterVC2022::getValueTreeTypeName(),
|
||||||
|
MSVCProjectExporterVC2026::getValueTreeTypeName() };
|
||||||
|
|
||||||
if (isJUCEExample (pipFile) && std::find (std::begin (vsExporters), std::end (vsExporters), exporterIdentifier) != std::end (vsExporters))
|
if (isJUCEExample (pipFile) && std::find (std::begin (vsExporters), std::end (vsExporters), exporterIdentifier) != std::end (vsExporters))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue