From ea826db813701c817b7d20f36592c357d4743dbc Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 23 Mar 2018 10:55:44 +0000 Subject: [PATCH] PIPs: Ensure that the assets directory is copied correctly for mobile examples --- .../Utility/PIPs/jucer_PIPGenerator.cpp | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) 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);