1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Introjucer: added exporter for VS2013

This commit is contained in:
jules 2013-07-09 16:09:28 +01:00
parent ecc1a17bc6
commit 82d305a2a2
7 changed files with 105 additions and 66 deletions

View file

@ -295,7 +295,7 @@ struct AppearanceEditor
startTimer (1);
}
void paint (Graphics& g)
void paint (Graphics& g) override
{
g.fillAll (Colours::darkgrey);
@ -388,7 +388,7 @@ struct AppearanceEditor
panel.addProperties (props);
}
void resized()
void resized() override
{
Rectangle<int> r (getLocalBounds());
panel.setBounds (r.removeFromTop (getHeight() - 28).reduced (4, 2));
@ -400,7 +400,7 @@ struct AppearanceEditor
PropertyPanel panel;
TextButton loadButton, saveButton;
void buttonClicked (Button* b)
void buttonClicked (Button* b) override
{
if (b == &loadButton)
loadScheme();
@ -485,12 +485,12 @@ struct AppearanceEditor
public:
FontSizeValueSource (const Value& source) : ValueSourceFilter (source) {}
var getValue() const
var getValue() const override
{
return Font::fromString (sourceValue.toString()).getHeight();
}
void setValue (const var& newValue)
void setValue (const var& newValue) override
{
sourceValue = Font::fromString (sourceValue.toString()).withHeight (newValue).toString();
}

View file

@ -64,12 +64,12 @@ public:
}
//==============================================================================
bool launchProject() { return false; }
bool isAndroid() const { return true; }
bool usesMMFiles() const { return false; }
bool canCopeWithDuplicateFiles() { return false; }
bool launchProject() override { return false; }
bool isAndroid() const override { return true; }
bool usesMMFiles() const override { return false; }
bool canCopeWithDuplicateFiles() override { return false; }
void createExporterProperties (PropertyListBuilder& props)
void createExporterProperties (PropertyListBuilder& props) override
{
props.add (new TextPropertyComponent (getActivityClassPathValue(), "Android Activity class name", 256, false),
"The full java class name to use for the app's Activity class.");
@ -154,7 +154,7 @@ public:
}
//==============================================================================
void create (const OwnedArray<LibraryModule>& modules) const
void create (const OwnedArray<LibraryModule>& modules) const override
{
const File target (getTargetFolder());
const File jniFolder (target.getChildFile ("jni"));

View file

@ -47,18 +47,18 @@ public:
}
//==============================================================================
bool launchProject() { return false; }
bool isCodeBlocks() const { return true; }
bool isWindows() const { return true; }
bool usesMMFiles() const { return false; }
bool canCopeWithDuplicateFiles() { return false; }
bool launchProject() override { return false; }
bool isCodeBlocks() const override { return true; }
bool isWindows() const override { return true; }
bool usesMMFiles() const override { return false; }
bool canCopeWithDuplicateFiles() override { return false; }
void createExporterProperties (PropertyListBuilder&)
void createExporterProperties (PropertyListBuilder&) override
{
}
//==============================================================================
void create (const OwnedArray<LibraryModule>&) const
void create (const OwnedArray<LibraryModule>&) const override
{
const File cbpFile (getTargetFolder().getChildFile (project.getProjectFilenameRoot())
.withFileExtension (".cbp"));
@ -84,7 +84,7 @@ private:
}
};
BuildConfiguration::Ptr createBuildConfig (const ValueTree& tree) const
BuildConfiguration::Ptr createBuildConfig (const ValueTree& tree) const override
{
return new CodeBlocksBuildConfiguration (project, tree);
}

View file

@ -36,12 +36,12 @@ public:
}
//==============================================================================
bool usesMMFiles() const { return false; }
bool isVisualStudio() const { return true; }
bool isWindows() const { return true; }
bool canCopeWithDuplicateFiles() { return false; }
bool usesMMFiles() const override { return false; }
bool isVisualStudio() const override { return true; }
bool isWindows() const override { return true; }
bool canCopeWithDuplicateFiles() override { return false; }
bool launchProject()
bool launchProject() override
{
#if JUCE_WINDOWS
return getSLNFile().startAsProcess();
@ -50,7 +50,7 @@ public:
#endif
}
void createExporterProperties (PropertyListBuilder&)
void createExporterProperties (PropertyListBuilder&) override
{
}
@ -164,7 +164,7 @@ protected:
return target;
}
void createConfigProperties (PropertyListBuilder& props)
void createConfigProperties (PropertyListBuilder& props) override
{
props.add (new TextPropertyComponent (getIntermediatesPathValue(), "Intermediates path", 2048, false),
"An optional path to a folder to use for the intermediate build files. Note that Visual Studio allows "
@ -211,7 +211,7 @@ protected:
}
};
BuildConfiguration::Ptr createBuildConfig (const ValueTree& v) const
BuildConfiguration::Ptr createBuildConfig (const ValueTree& v) const override
{
return new MSVCBuildConfiguration (project, v);
}
@ -557,7 +557,7 @@ public:
static const char* getName() { return "Visual Studio 2008"; }
static const char* getValueTreeTypeName() { return "VS2008"; }
int getVisualStudioVersion() const { return 9; }
int getVisualStudioVersion() const override { return 9; }
static MSVCProjectExporterVC2008* createForSettings (Project& project, const ValueTree& settings)
{
@ -916,7 +916,7 @@ public:
static const char* getName() { return "Visual Studio 2005"; }
static const char* getValueTreeTypeName() { return "VS2005"; }
int getVisualStudioVersion() const { return 8; }
int getVisualStudioVersion() const override { return 8; }
static MSVCProjectExporterVC2005* createForSettings (Project& project, const ValueTree& settings)
{
@ -945,9 +945,10 @@ public:
static const char* getName() { return "Visual Studio 2010"; }
static const char* getValueTreeTypeName() { return "VS2010"; }
int getVisualStudioVersion() const { return 10; }
int getVisualStudioVersion() const override { return 10; }
virtual String getPlatformToolset() const { return "Windows7.1SDK"; }
virtual String getSolutionComment() const { return "# Visual Studio 2010"; }
virtual String getToolsVersion() const { return "4.0"; }
static MSVCProjectExporterVC2010* createForSettings (Project& project, const ValueTree& settings)
{
@ -1004,7 +1005,7 @@ protected:
bool is64Bit() const { return config [Ids::winArchitecture].toString() == get64BitArchName(); }
//==============================================================================
void createConfigProperties (PropertyListBuilder& props)
void createConfigProperties (PropertyListBuilder& props) override
{
MSVCBuildConfiguration::createConfigProperties (props);
@ -1483,21 +1484,23 @@ protected:
class MSVCProjectExporterVC2012 : public MSVCProjectExporterVC2010
{
public:
MSVCProjectExporterVC2012 (Project& p, const ValueTree& t)
: MSVCProjectExporterVC2010 (p, t, "VisualStudio2012")
MSVCProjectExporterVC2012 (Project& p, const ValueTree& t,
const char* folderName = "VisualStudio2012")
: MSVCProjectExporterVC2010 (p, t, folderName)
{
name = getName();
}
static const char* getName() { return "Visual Studio 2012"; }
static const char* getValueTreeTypeName() { return "VS2012"; }
int getVisualStudioVersion() const { return 11; }
String getSolutionComment() const { return "# Visual Studio 2012"; }
int getVisualStudioVersion() const override { return 11; }
String getSolutionComment() const override { return "# Visual Studio 2012"; }
virtual String getDefaultToolset() const { return "v110"; }
String getPlatformToolset() const
{
const String s (settings [Ids::toolset].toString());
return s.isNotEmpty() ? s : "v110";
return s.isNotEmpty() ? s : getDefaultToolset();
}
Value getPlatformToolsetValue() { return getSetting (Ids::toolset); }
@ -1510,7 +1513,7 @@ public:
return nullptr;
}
void createExporterProperties (PropertyListBuilder& props)
void createExporterProperties (PropertyListBuilder& props) override
{
MSVCProjectExporterVC2010::createExporterProperties (props);
@ -1523,7 +1526,7 @@ public:
}
private:
void addPlatformToolsetToPropertyGroup (XmlElement& p) const
void addPlatformToolsetToPropertyGroup (XmlElement& p) const override
{
forEachXmlChildElementWithTagName (p, e, "PropertyGroup")
{
@ -1536,3 +1539,44 @@ private:
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2012)
};
//==============================================================================
class MSVCProjectExporterVC2013 : public MSVCProjectExporterVC2012
{
public:
MSVCProjectExporterVC2013 (Project& p, const ValueTree& t)
: MSVCProjectExporterVC2012 (p, t, "VisualStudio2013")
{
name = getName();
}
static const char* getName() { return "Visual Studio 2013"; }
static const char* getValueTreeTypeName() { return "VS2013"; }
int getVisualStudioVersion() const override { return 12; }
String getSolutionComment() const override { return "# Visual Studio 2013"; }
String getToolsVersion() const override { return "12.0"; }
String getDefaultToolset() const override { return "v120"; }
static MSVCProjectExporterVC2013* createForSettings (Project& project, const ValueTree& settings)
{
if (settings.hasType (getValueTreeTypeName()))
return new MSVCProjectExporterVC2013 (project, settings);
return nullptr;
}
void createExporterProperties (PropertyListBuilder& props) override
{
MSVCProjectExporterVC2010::createExporterProperties (props);
const char* const toolsetNames[] = { "(default)", "v120", "v120_xp", nullptr };
const var toolsets[] = { var(), "v120", "v120_xp" };
props.add (new ChoicePropertyComponent (getPlatformToolsetValue(), "Platform Toolset",
StringArray (toolsetNames),
Array<var> (toolsets, numElementsInArray (toolsets))));
}
private:
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2013)
};

View file

@ -48,17 +48,17 @@ public:
}
//==============================================================================
bool launchProject() { return false; }
bool usesMMFiles() const { return false; }
bool isLinux() const { return true; }
bool canCopeWithDuplicateFiles() { return false; }
bool launchProject() override { return false; }
bool usesMMFiles() const override { return false; }
bool isLinux() const override { return true; }
bool canCopeWithDuplicateFiles() override { return false; }
void createExporterProperties (PropertyListBuilder&)
void createExporterProperties (PropertyListBuilder&) override
{
}
//==============================================================================
void create (const OwnedArray<LibraryModule>&) const
void create (const OwnedArray<LibraryModule>&) const override
{
Array<RelativePath> files;
for (int i = 0; i < getAllGroups().size(); ++i)
@ -84,7 +84,7 @@ protected:
Value getArchitectureType() { return getValue (Ids::linuxArchitecture); }
String getArchitectureTypeString() const { return config [Ids::linuxArchitecture]; }
void createConfigProperties (PropertyListBuilder& props)
void createConfigProperties (PropertyListBuilder& props) override
{
const char* const archNames[] = { "(Default)", "32-bit (-m32)", "64-bit (-m64)", "ARM v6", "ARM v7" };
const var archFlags[] = { var(), "-m32", "-m64", "-march=armv6", "-march=armv7" };
@ -95,7 +95,7 @@ protected:
}
};
BuildConfiguration::Ptr createBuildConfig (const ValueTree& tree) const
BuildConfiguration::Ptr createBuildConfig (const ValueTree& tree) const override
{
return new MakeBuildConfiguration (project, tree);
}

View file

@ -78,21 +78,12 @@ public:
Value getPreBuildScriptValue() { return getSetting (Ids::prebuildCommand); }
String getPreBuildScript() const { return settings [Ids::prebuildCommand]; }
bool isAvailableOnCurrentOS()
{
#if JUCE_MAC
return true;
#else
return false;
#endif
}
bool usesMMFiles() const override { return true; }
bool isXcode() const override { return true; }
bool isOSX() const override { return ! iOS; }
bool canCopeWithDuplicateFiles() override { return true; }
bool usesMMFiles() const { return true; }
bool isXcode() const { return true; }
bool isOSX() const { return ! iOS; }
bool canCopeWithDuplicateFiles() { return true; }
void createExporterProperties (PropertyListBuilder& props)
void createExporterProperties (PropertyListBuilder& props) override
{
if (projectType.isGUIApplication() && ! iOS)
{
@ -125,7 +116,7 @@ public:
"Some shell-script that will be run after a build completes.");
}
bool launchProject()
bool launchProject() override
{
#if JUCE_MAC
return getProjectBundle().startAsProcess();
@ -135,7 +126,7 @@ public:
}
//==============================================================================
void create (const OwnedArray<LibraryModule>&) const
void create (const OwnedArray<LibraryModule>&) const override
{
infoPlistFile = getTargetFolder().getChildFile ("Info.plist");
menuNibFile = getTargetFolder().getChildFile ("RecentFilesMenuTemplate.nib");
@ -247,7 +238,7 @@ protected:
bool iOS;
};
BuildConfiguration::Ptr createBuildConfig (const ValueTree& v) const
BuildConfiguration::Ptr createBuildConfig (const ValueTree& v) const override
{
return new XcodeBuildConfiguration (project, v, iOS);
}

View file

@ -41,6 +41,7 @@ StringArray ProjectExporter::getExporterNames()
s.add (MSVCProjectExporterVC2008::getName());
s.add (MSVCProjectExporterVC2010::getName());
s.add (MSVCProjectExporterVC2012::getName());
s.add (MSVCProjectExporterVC2013::getName());
s.add (MakefileProjectExporter::getNameLinux());
s.add (AndroidProjectExporter::getNameAndroid());
s.add (CodeBlocksProjectExporter::getNameCodeBlocks());
@ -72,9 +73,10 @@ ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int
case 3: exp = new MSVCProjectExporterVC2008 (project, ValueTree (MSVCProjectExporterVC2008::getValueTreeTypeName())); break;
case 4: exp = new MSVCProjectExporterVC2010 (project, ValueTree (MSVCProjectExporterVC2010::getValueTreeTypeName())); break;
case 5: exp = new MSVCProjectExporterVC2012 (project, ValueTree (MSVCProjectExporterVC2012::getValueTreeTypeName())); break;
case 6: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter ::getValueTreeTypeName())); break;
case 7: exp = new AndroidProjectExporter (project, ValueTree (AndroidProjectExporter ::getValueTreeTypeName())); break;
case 8: exp = new CodeBlocksProjectExporter (project, ValueTree (CodeBlocksProjectExporter::getValueTreeTypeName())); break;
case 6: exp = new MSVCProjectExporterVC2013 (project, ValueTree (MSVCProjectExporterVC2013::getValueTreeTypeName())); break;
case 7: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter ::getValueTreeTypeName())); break;
case 8: exp = new AndroidProjectExporter (project, ValueTree (AndroidProjectExporter ::getValueTreeTypeName())); break;
case 9: exp = new CodeBlocksProjectExporter (project, ValueTree (CodeBlocksProjectExporter::getValueTreeTypeName())); break;
default: jassertfalse; return 0;
}
@ -103,6 +105,7 @@ ProjectExporter* ProjectExporter::createExporter (Project& project, const ValueT
if (exp == nullptr) exp = MSVCProjectExporterVC2008::createForSettings (project, settings);
if (exp == nullptr) exp = MSVCProjectExporterVC2010::createForSettings (project, settings);
if (exp == nullptr) exp = MSVCProjectExporterVC2012::createForSettings (project, settings);
if (exp == nullptr) exp = MSVCProjectExporterVC2013::createForSettings (project, settings);
if (exp == nullptr) exp = XCodeProjectExporter ::createForSettings (project, settings);
if (exp == nullptr) exp = MakefileProjectExporter ::createForSettings (project, settings);
if (exp == nullptr) exp = AndroidProjectExporter ::createForSettings (project, settings);
@ -126,6 +129,7 @@ bool ProjectExporter::canProjectBeLaunched (Project* project)
MSVCProjectExporterVC2008::getValueTreeTypeName(),
MSVCProjectExporterVC2010::getValueTreeTypeName(),
MSVCProjectExporterVC2012::getValueTreeTypeName(),
MSVCProjectExporterVC2013::getValueTreeTypeName(),
#elif JUCE_LINUX
// (this doesn't currently launch.. not really sure what it would do on linux)
//MakefileProjectExporter::getValueTreeTypeName(),