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)
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
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(),
|
||||
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<MSVCProjectExporterVC2019> (export_visualStudio_svg, export_visualStudio_svgSize),
|
||||
|
||||
|
|
@ -160,6 +161,7 @@ std::unique_ptr<ProjectExporter> ProjectExporter::createExporterFromSettings (Pr
|
|||
return tryCreatingExporter (project,
|
||||
settings,
|
||||
Tag<XcodeProjectExporter>{},
|
||||
Tag<MSVCProjectExporterVC2026>{},
|
||||
Tag<MSVCProjectExporterVC2022>{},
|
||||
Tag<MSVCProjectExporterVC2019>{},
|
||||
Tag<MakefileProjectExporter>{},
|
||||
|
|
@ -176,6 +178,7 @@ bool ProjectExporter::canProjectBeLaunched (Project* project)
|
|||
XcodeProjectExporter::getValueTreeTypeNameMac(),
|
||||
XcodeProjectExporter::getValueTreeTypeNameiOS(),
|
||||
#elif JUCE_WINDOWS
|
||||
MSVCProjectExporterVC2026::getValueTreeTypeName(),
|
||||
MSVCProjectExporterVC2022::getValueTreeTypeName(),
|
||||
MSVCProjectExporterVC2019::getValueTreeTypeName(),
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -254,7 +254,8 @@ ValueTree PIPGenerator::createExporterChild (const Identifier& exporterIdentifie
|
|||
exporter.setProperty (Ids::targetFolder, "Builds/" + ProjectExporter::getTypeInfoForExporter (exporterIdentifier).targetFolder, nullptr);
|
||||
|
||||
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))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue