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:
parent
ecc1a17bc6
commit
82d305a2a2
7 changed files with 105 additions and 66 deletions
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue