1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-04 03:40:07 +00:00

More introjucer refactoring.

This commit is contained in:
Julian Storer 2011-07-06 13:35:17 +01:00
parent a1abff979b
commit e627847d32
91 changed files with 866 additions and 756 deletions

View file

@ -32,8 +32,7 @@
//==============================================================================
ProjectExporter::ProjectExporter (Project& project_, const ValueTree& settings_)
: libraryFilesGroup (Project::Item::createGroup (project_, project_.getJuceCodeGroupName())),
project (project_),
: project (project_),
settings (settings_)
{
}
@ -87,6 +86,7 @@ ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int
else
exp->getJuceFolder() = juceFolder.getFullPathName();
exp->createLibraryModules();
return exp;
}
@ -101,6 +101,7 @@ ProjectExporter* ProjectExporter::createExporter (Project& project, const ValueT
if (exp == nullptr) exp = AndroidProjectExporter::createForSettings (project, settings);
jassert (exp != nullptr);
exp->createLibraryModules();
return exp;
}
@ -125,6 +126,12 @@ ProjectExporter* ProjectExporter::createPlatformDefaultExporter (Project& projec
return best.release();
}
void ProjectExporter::createLibraryModules()
{
libraryModules.clear();
project.getProjectType().createRequiredModules (project, libraryModules);
}
File ProjectExporter::getTargetFolder() const
{
return project.resolveFilename (getTargetLocation().toString());
@ -180,7 +187,8 @@ void ProjectExporter::createPropertyEditors (Array <PropertyComponent*>& props)
props.add (new TextPropertyComponent (getJuceFolder(), "Juce Location", 1024, false));
props.getLast()->setTooltip ("The location of the Juce library folder that the " + name + " project will use to when compiling. This can be an absolute path, or relative to the jucer project folder, but it must be valid on the filesystem of the machine you use to actually do the compiling.");
project.getProjectType().createPropertyEditors (*this, props);
for (int i = 0; i < libraryModules.size(); ++i)
libraryModules.getUnchecked(i)->createPropertyEditors (*this, props);
props.add (new TextPropertyComponent (getExporterPreprocessorDefs(), "Extra Preprocessor Definitions", 32768, false));
props.getLast()->setTooltip ("Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash.");
@ -191,49 +199,6 @@ void ProjectExporter::createPropertyEditors (Array <PropertyComponent*>& props)
props.getLast()->setTooltip ("Extra command-line flags to be passed to the linker. You might want to use this for adding additional libraries. This string can contain references to preprocessor definitions in the form ${NAME_OF_VALUE}, which will be replaced with their values.");
}
Project::Item ProjectExporter::createVSTGroup (bool forOSX) const
{
jassert (isVST());
Project::Item group (Project::Item::createGroup (project, "Juce VST Wrapper"));
const char* osxFiles[] = { JUCE_PLUGINS_PATH_VST "juce_VST_Wrapper.cpp",
JUCE_PLUGINS_PATH_VST "juce_VST_Wrapper.mm", 0 };
const char* winFiles[] = { JUCE_PLUGINS_PATH_VST "juce_VST_Wrapper.cpp", 0};
for (const char** f = (forOSX ? osxFiles : winFiles); *f != 0; ++f)
group.addRelativeFile (getJucePathFromProjectFolder().getChildFile (*f), -1);
return group;
}
Project::Item ProjectExporter::createRTASGroup (bool forOSX) const
{
jassert (isRTAS());
Project::Item group (Project::Item::createGroup (project, "Juce RTAS Wrapper"));
const char* osxFiles[] = { JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode1.cpp",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode2.cpp",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode3.cpp",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode_Header.h",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_MacResources.r",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_MacUtilities.mm",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_Wrapper.cpp", 0 };
const char* winFiles[] = { JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode1.cpp",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode2.cpp",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode3.cpp",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode_Header.h",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinUtilities.cpp",
JUCE_PLUGINS_PATH_RTAS "juce_RTAS_Wrapper.cpp" , 0};
for (const char** f = (forOSX ? osxFiles : winFiles); *f != 0; ++f)
group.addRelativeFile (getJucePathFromProjectFolder().getChildFile (*f), -1);
return group;
}
StringPairArray ProjectExporter::getAllPreprocessorDefs (const Project::BuildConfiguration& config) const
{
StringPairArray defs (mergePreprocessorDefs (config.getAllPreprocessorDefs(),