diff --git a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp index 5f4c8997f3..c02b6ab27f 100644 --- a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp +++ b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp @@ -63,7 +63,7 @@ static void ensureSingleNewLineAfterIncludes (StringArray& lines) } } -static String ensureCorrectWhitespace (const String& input) +static String ensureCorrectWhitespace (StringRef input) { auto lines = StringArray::fromLines (input); ensureSingleNewLineAfterIncludes (lines); @@ -86,11 +86,16 @@ static bool isJUCEExample (const File& pipFile) return false; } -static bool isValidExporterName (const String& exporterName) +static bool isValidExporterName (StringRef exporterName) { return ProjectExporter::getExporterValueTreeNames().contains (exporterName, true); } +static bool isMobileExporter (const String& exporterName) +{ + return exporterName == "XCODE_IPHONE" || exporterName == "ANDROIDSTUDIO"; +} + //============================================================================== PIPGenerator::PIPGenerator (const File& pip, const File& output) : pipFile (pip), @@ -305,6 +310,25 @@ ValueTree PIPGenerator::createExporterChild (const String& exporterName) exporter.setProperty (Ids::targetFolder, "Builds/" + ProjectExporter::getTargetFolderForExporter (exporterName), nullptr); + if (isMobileExporter (exporterName)) + { + auto juceDir = getAppSettings().getStoredPath (Ids::jucePath).toString(); + + if (juceDir.isNotEmpty() && isValidJUCEExamplesDirectory (File (juceDir).getChildFile ("examples"))) + { + auto assetsDirectoryPath = File (juceDir).getChildFile ("examples").getChildFile ("Assets").getFullPathName(); + + exporter.setProperty (exporterName == "XCODE_IPHONE" ? Ids::customXcodeResourceFolders + : Ids::androidExtraAssetsFolder, + assetsDirectoryPath, nullptr); + } + else + { + // invalid JUCE path + jassertfalse; + } + } + { ValueTree configs (Ids::CONFIGURATIONS);