diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp index fdd7cb503e..d4656f1ab0 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp @@ -96,6 +96,16 @@ StringArray ProjectExporter::getExporterNames() return s; } +StringArray ProjectExporter::getExporterValueTreeNames() +{ + StringArray s; + + for (auto& n : getExporterNames()) + s.add (getValueTreeNameForExporter (n)); + + return s; +} + String ProjectExporter::getValueTreeNameForExporter (const String& exporterName) { if (exporterName == XcodeProjectExporter::getNameMac()) @@ -131,6 +141,22 @@ String ProjectExporter::getValueTreeNameForExporter (const String& exporterName) return {}; } +String ProjectExporter::getTargetFolderForExporter (const String& exporterValueTreeName) +{ + if (exporterValueTreeName == "XCODE_MAC") return "MacOSX"; + if (exporterValueTreeName == "XCODE_IPHONE") return "iOS"; + if (exporterValueTreeName == "VS2017") return "VisualStudio2017"; + if (exporterValueTreeName == "VS2015") return "VisualStudio2015"; + if (exporterValueTreeName == "VS2013") return "VisualStudio2013"; + if (exporterValueTreeName == "LINUX_MAKE") return "LinuxMakefile"; + if (exporterValueTreeName == "ANDROIDSTUDIO") return "Android"; + if (exporterValueTreeName == "CODEBLOCKS_WINDOWS") return "CodeBlocksWindows"; + if (exporterValueTreeName == "CODEBLOCKS_LINUX") return "CodeBlocksLinux"; + if (exporterValueTreeName == "CLION") return "CLion"; + + return {}; +} + StringArray ProjectExporter::getAllDefaultBuildsFolders() { StringArray folders; diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h index ba02d5525b..c8332d4837 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.h @@ -59,8 +59,10 @@ public: }; static StringArray getExporterNames(); + static StringArray getExporterValueTreeNames(); static Array getExporterTypes(); static String getValueTreeNameForExporter (const String& exporterName); + static String getTargetFolderForExporter (const String& exporterValueTreeName); static StringArray getAllDefaultBuildsFolders(); static ProjectExporter* createNewExporter (Project&, const int index); diff --git a/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.cpp b/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.cpp index 03e87a3b9e..780fb5a5e3 100644 --- a/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.cpp +++ b/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.cpp @@ -322,68 +322,11 @@ StringArray getJUCEModules() noexcept return juceModuleIds; } -StringArray getJUCEExporters (bool lowerCase) noexcept -{ - static StringArray validExportersUpper = - { - "XCODE_MAC", - "XCODE_IPHONE", - "VS2013", - "VS2015", - "VS2017", - "LINUX_MAKE", - "ANDROIDSTUDIO", - "CODEBLOCKS_WINDOWS", - "CODEBLOCKS_LINUX", - "CLION" - }; - - static StringArray validExportersLower = - { - "xcode_mac", - "xcode_iphone", - "vs2013", - "vs2015", - "vs2017", - "linux_make", - "androidstudio", - "codeblocks_windows", - "codeblocks_linux", - "clion" - }; - - if (lowerCase) - return validExportersLower; - - return validExportersUpper; -} - bool isJUCEModule (const String& moduleID) noexcept { return getJUCEModules().contains (moduleID); } -bool isValidExporterName (const String& exporterName) noexcept -{ - return getJUCEExporters().contains (exporterName, true); -} - -String getTargetFolderForExporter (const String& exporterName) noexcept -{ - if (exporterName == "XCODE_MAC") return "MacOSX"; - if (exporterName == "XCODE_IPHONE") return "iOS"; - if (exporterName == "VS2017") return "VisualStudio2017"; - if (exporterName == "VS2015") return "VisualStudio2015"; - if (exporterName == "VS2013") return "VisualStudio2013"; - if (exporterName == "LINUX_MAKE") return "LinuxMakefile"; - if (exporterName == "ANDROIDSTUDIO") return "Android"; - if (exporterName == "CODEBLOCKS_WINDOWS") return "CodeBlocksWindows"; - if (exporterName == "CODEBLOCKS_LINUX") return "CodeBlocksLinux"; - if (exporterName == "CLION") return "CLion"; - - return {}; -} - StringArray getModulesRequiredForConsole() noexcept { return { "juce_core", diff --git a/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.h b/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.h index b9f4b4f760..467fb5b24e 100644 --- a/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.h +++ b/extras/Projucer/Source/Utility/Helpers/jucer_MiscUtilities.h @@ -59,11 +59,7 @@ void addPlistDictionaryKeyInt (XmlElement* xml, const String& key, int value); bool fileNeedsCppSyntaxHighlighting (const File& file); StringArray getJUCEModules() noexcept; -StringArray getJUCEExporters (bool lowerCase = false) noexcept; - bool isJUCEModule (const String& moduleID) noexcept; -bool isValidExporterName (const String& exporterName) noexcept; -String getTargetFolderForExporter (const String& exporterName) noexcept; StringArray getModulesRequiredForConsole() noexcept; StringArray getModulesRequiredForComponent() noexcept; diff --git a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp index 33a9c504ec..5f4c8997f3 100644 --- a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp +++ b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp @@ -25,6 +25,7 @@ */ #include "../../Application/jucer_Headers.h" +#include "../../ProjectSaving/jucer_ProjectExporter.h" #include "jucer_PIPGenerator.h" //============================================================================== @@ -85,6 +86,11 @@ static bool isJUCEExample (const File& pipFile) return false; } +static bool isValidExporterName (const String& exporterName) +{ + return ProjectExporter::getExporterValueTreeNames().contains (exporterName, true); +} + //============================================================================== PIPGenerator::PIPGenerator (const File& pip, const File& output) : pipFile (pip), @@ -297,7 +303,7 @@ ValueTree PIPGenerator::createExporterChild (const String& exporterName) { ValueTree exporter (exporterName); - exporter.setProperty (Ids::targetFolder, "Builds/" + getTargetFolderForExporter (exporterName), nullptr); + exporter.setProperty (Ids::targetFolder, "Builds/" + ProjectExporter::getTargetFolderForExporter (exporterName), nullptr); { ValueTree configs (Ids::CONFIGURATIONS);